:root{
  --green:#34C759;        /* 主色：成长绿 */
  --green-soft:#E8F8EE;
  --amber:#FF9F0A;        /* 能量橙 */
  --amber-soft:#FFF4E0;
  --blue:#3DA5F4;
  --ink:#2B2F36;
  --sub:#8A909C;
  --line:#EEF1F5;
  --bg:#F4F6F9;
  --card:#FFFFFF;
  --radius:18px;
  --shadow:0 6px 20px rgba(40,60,90,.06);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  background:#DFE5EC;color:var(--ink);
  display:flex;justify-content:center;min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
/* 应用容器：移动端满屏，桌面端居中限宽 */
.app{
  width:100%;max-width:480px;background:var(--bg);
  min-height:100vh;position:relative;overflow:hidden;
  display:flex;flex-direction:column;
  box-shadow:0 0 40px rgba(30,50,90,.12);
}
/* 状态栏已隐藏（用户要求去掉时间/图标） */
.statusbar{display:none;}

.screen{
  flex:1;overflow-y:auto;padding:14px 16px 92px;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.screen::-webkit-scrollbar{display:none;}

/* 顶部标题栏 */
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.topbar h1{font-size:22px;margin:0;font-weight:700;letter-spacing:.5px;}
.topbar .date{font-size:12px;color:var(--sub);}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--green-soft);display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;}

/* 能量横幅 */
.banner{
  background:linear-gradient(120deg,var(--green),#5BD98A);border-radius:var(--radius);
  padding:16px 18px;color:#fff;box-shadow:var(--shadow);margin-bottom:16px;position:relative;overflow:hidden;
}
.banner h2{margin:0 0 4px;font-size:17px;font-weight:700;}
.banner p{margin:0;font-size:13px;opacity:.92;}
.banner .energy{position:absolute;right:14px;top:14px;font-size:34px;}
.progress{height:8px;background:rgba(255,255,255,.35);border-radius:6px;margin-top:12px;overflow:hidden;}
.progress > i{display:block;height:100%;width:0%;background:#fff;border-radius:6px;transition:width .4s ease;}

/* 卡片 */
.card{background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);margin-bottom:12px;}
.sec-title{font-size:14px;font-weight:700;color:var(--sub);margin:6px 4px 10px;display:flex;justify-content:space-between;align-items:center;}
.sec-title .more{font-size:12px;color:var(--blue);font-weight:600;}

/* 作业项 */
.hw{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:#FBFCFE;border:1px solid var(--line);margin-bottom:10px;transition:.2s;}
.hw.done{background:var(--green-soft);border-color:transparent;}
.hw .check{width:26px;height:26px;border-radius:50%;border:2px solid #D4DAE3;flex:none;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;}
.hw.done .check{background:var(--green);border-color:var(--green);}
.hw .info{flex:1;min-width:0;}
.hw .subj{display:inline-block;font-size:11px;padding:1px 8px;border-radius:20px;background:var(--amber-soft);color:#B26A00;margin-bottom:3px;font-weight:600;}
.hw .subj.math{background:#E6F0FF;color:#2B6FD6;}
.hw .subj.eng{background:#FDEAF3;color:#C44D93;}
.hw .subj.pe{background:#E9F7EC;color:#1E9E4A;}
.hw .title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hw .meta{font-size:12px;color:var(--sub);margin-top:2px;}
.hw .time{font-size:12px;color:var(--sub);flex:none;}

/* 按钮 */
.btn{display:block;width:100%;padding:15px;border:none;border-radius:16px;font-size:16px;font-weight:700;cursor:pointer;transition:.15s;}
.btn.primary{background:var(--green);color:#fff;}
.btn.primary:active{transform:scale(.98);background:#2DB14E;}
.btn.ghost{background:#fff;color:var(--green);border:1.5px solid var(--green);}
.btn.amber{background:var(--amber);color:#fff;}
.btn:disabled{background:#E4E8EE;color:#AEB4BF;cursor:not-allowed;}

/* 底部导航 */
.tabbar{
  position:absolute;left:0;right:0;bottom:0;height:74px;background:#fff;
  border-top:1px solid var(--line);display:flex;
  padding:8px 6px calc(8px + env(safe-area-inset-bottom));
  justify-content:space-around;align-items:flex-start;z-index:6;
}
.tab{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--sub);cursor:pointer;width:56px;padding-top:4px;}
.tab.active{color:var(--green);font-weight:700;}
.tab .ic{font-size:22px;line-height:1;}

/* 隐藏屏 */
.view{display:none;}
.view.active{display:block;animation:fade .25s ease;}
@keyframes fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* 导入页 */
.seg{display:flex;background:#EEF1F5;border-radius:14px;padding:4px;margin-bottom:14px;}
.seg button{flex:1;border:none;background:transparent;padding:10px;border-radius:11px;font-size:14px;font-weight:600;color:var(--sub);cursor:pointer;}
.seg button.on{background:#fff;color:var(--green);box-shadow:var(--shadow);}
.textarea{width:100%;min-height:120px;border:1.5px solid var(--line);border-radius:14px;padding:12px;font-size:14px;resize:vertical;font-family:inherit;outline:none;display:block;}
.textarea:focus{border-color:var(--green);}
.cam{border:1.5px dashed #CFD6E0;border-radius:14px;padding:26px;text-align:center;color:var(--sub);margin-bottom:14px;cursor:pointer;}
.cam .big{font-size:34px;display:block;margin-bottom:6px;}
.preview-item{display:flex;align-items:center;gap:8px;padding:10px;border-radius:12px;background:#FBFCFE;border:1px solid var(--line);margin-bottom:8px;}
.preview-item .subj{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;background:var(--amber-soft);color:#B26A00;}
.batch-banner{font-size:13px;background:var(--green-soft);color:#1E9E4A;padding:10px 12px;border-radius:12px;margin-bottom:10px;font-weight:500;}
.batch-banner b{font-size:15px;}
.pv-subj{border:1.5px solid var(--line);border-radius:10px;padding:7px 4px;font-size:13px;font-family:inherit;background:#fff;color:var(--ink);max-width:64px;}
.pv-title{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:10px;padding:7px 8px;font-size:13px;font-family:inherit;outline:none;}
.pv-title:focus{border-color:var(--green);}
.pv-min{width:46px;border:1.5px solid var(--line);border-radius:10px;padding:7px 2px;font-size:13px;font-family:inherit;text-align:center;outline:none;}
.pv-del{border:none;background:#FDECEC;color:#E04848;width:30px;height:30px;border-radius:50%;font-size:15px;cursor:pointer;flex:none;}
.pv-del:active{transform:scale(.9);}
.pv-reuse{border:none;background:var(--green-soft);color:#1E9E4A;width:30px;height:30px;border-radius:50%;font-size:16px;cursor:pointer;flex:none;}
.pv-reuse:active{transform:scale(.9);}

/* 作业列表排序 */
.reorder{display:flex;flex-direction:column;gap:4px;flex:none;margin-left:2px;}
.mv{width:28px;height:20px;border:none;background:#EEF1F5;border-radius:7px;font-size:11px;color:var(--sub);cursor:pointer;line-height:1;}
.mv:active{transform:scale(.9);background:var(--green-soft);color:var(--green);}
.mv.dis{opacity:.35;cursor:default;}

/* 专注页 */
.opt-row{display:flex;gap:10px;margin-bottom:18px;}
.opt{flex:1;text-align:center;padding:16px 6px;border-radius:16px;background:#fff;border:2px solid var(--line);cursor:pointer;font-weight:700;font-size:15px;}
.opt.on{border-color:var(--green);background:var(--green-soft);color:#1E9E4A;}
.opt .lbl{font-size:11px;color:var(--sub);font-weight:500;display:block;margin-top:3px;}
.focus-card{text-align:center;padding:26px 16px;}
.focus-card .ring{width:180px;height:180px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:800;color:var(--green);background:conic-gradient(var(--green) 0deg,#E8F8EE 0deg);}
.focus-card .proj{font-size:16px;font-weight:700;margin-bottom:4px;}
.focus-card .hint{font-size:12px;color:var(--sub);}

/* 解锁页 */
.unlock-center{text-align:center;padding:30px 10px;}
.unlock-center .battery{font-size:70px;margin-bottom:10px;}
.unlock-center h2{margin:0 0 6px;font-size:22px;}
.unlock-center p{color:var(--sub);font-size:13px;margin:0 0 22px;}
.countdown{font-size:46px;font-weight:800;color:var(--amber);margin:10px 0 18px;font-variant-numeric:tabular-nums;}
.row2{display:flex;gap:12px;}
.row2 .btn{flex:1;}

/* 设置页 */
.set-row{display:flex;align-items:center;justify-content:space-between;padding:15px 4px;border-bottom:1px solid var(--line);font-size:15px;cursor:pointer;}
.set-row:last-child{border-bottom:none;}
.set-row .arrow{color:var(--sub);}
.switch{width:46px;height:28px;border-radius:20px;background:#E4E8EE;position:relative;transition:.2s;cursor:pointer;flex:none;}
.switch.on{background:var(--green);}
.switch i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s;}
.switch.on i{left:21px;}

/* toast */
.toast{position:absolute;left:50%;top:54%;transform:translateX(-50%);background:rgba(43,47,54,.92);color:#fff;padding:10px 18px;border-radius:12px;font-size:13px;opacity:0;transition:.25s;pointer-events:none;z-index:9;white-space:nowrap;max-width:80%;text-align:center;}
.toast.show{opacity:1;}

.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;background:var(--green-soft);color:#1E9E4A;padding:4px 10px;border-radius:20px;font-weight:600;}

/* 登录遮罩 */
.login-mask{position:absolute;inset:0;background:rgba(244,246,249,.96);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20;transition:opacity .3s;}
.login-mask.hide{opacity:0;pointer-events:none;}
.login-card{text-align:center;padding:0 30px;}
.login-spin{font-size:46px;animation:spin 1.4s linear infinite;margin-bottom:14px;}
@keyframes spin{to{transform:rotate(360deg);}}
.login-card h3{margin:0 0 6px;font-size:18px;}
.login-card p{color:var(--sub);font-size:13px;margin:0;}

/* 空状态 */
.empty{font-size:13px;color:var(--sub);padding:10px 4px;text-align:center;}

/* 底部弹层 (bottom sheet) */
.sheet-mask{position:absolute;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:flex-end;z-index:30;opacity:0;pointer-events:none;transition:opacity .25s;}
.sheet-mask.show{opacity:1;pointer-events:auto;}
.sheet{background:#fff;width:100%;border-radius:22px 22px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .28s ease;}
.sheet-mask.show .sheet{transform:none;}
.sheet h3{margin:0 0 4px;font-size:18px;}
.sheet .sheet-sub{font-size:12px;color:var(--sub);margin:0 0 16px;}
.opt-grid{display:flex;flex-wrap:wrap;gap:10px;}
.chip-opt{padding:12px 20px;border-radius:14px;background:#EEF1F5;font-weight:600;font-size:15px;color:var(--sub);cursor:pointer;border:none;transition:.15s;}
.chip-opt:active{transform:scale(.97);}
.chip-opt.on{background:var(--green-soft);color:#1E9E4A;border:1.5px solid var(--green);}
.subj-manage{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;min-height:20px;}
.subj-manage .empty{width:100%;text-align:left;padding:6px 0;}
.subj-chip{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:20px;background:var(--green-soft);color:#1E9E4A;font-weight:600;font-size:14px;}
.subj-chip button{border:none;background:#E04848;color:#fff;width:20px;height:20px;border-radius:50%;font-size:12px;line-height:1;cursor:pointer;padding:0;}
.subj-add{display:flex;gap:10px;}
.subj-add input{flex:1;border:1.5px solid var(--line);border-radius:12px;padding:11px 12px;font-size:14px;font-family:inherit;outline:none;min-width:0;}
.subj-add input:focus{border-color:var(--green);}
