/* Interface refinement. Study data, question layout and sync behavior stay in app.js. */
:root{--ink:#1b2f47;--muted:#5b697b;--bg:#f4f6f9;--line:#e0e6ed;--accent:#ae3445;--tint:#faf0f2;--surface-shadow:0 2px 4px #152d4805,0 10px 32px #152d4804}
body{-webkit-font-smoothing:antialiased}
body[data-company=cnooc]{--accent:#17648e;--tint:#edf5fa}
h1,h2,h3{text-wrap:balance;letter-spacing:-.015em}
h1{font-size:1.85rem;font-weight:750;line-height:1.45}
h2{font-size:1.22rem;font-weight:700}
p.small,.page-heading>.muted,.task-row p,.list-row p{text-wrap:pretty}
button,.button,input,select,textarea{border-radius:8px}
button,.button{font-weight:550;transition:background-color 140ms ease-out,border-color 140ms ease-out,color 140ms ease-out}
button:disabled:hover{background:#fff;border-color:var(--line)}
.primary{font-weight:650;box-shadow:0 2px 3px #172c4610}
.primary:disabled{background:var(--accent)}
input,select,textarea{border-color:#ccd5df;line-height:1.5}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
input::placeholder,textarea::placeholder{color:#657589;opacity:1}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #467caf;outline-offset:3px}
.app-header{background:#172c46;box-shadow:0 1px 0 #172c460d}
.header-inner{min-height:82px;padding-top:16px;padding-bottom:16px;gap:22px}
.brand{display:inline-flex;align-items:center;gap:12px;font-size:1.2rem;letter-spacing:.01em;line-height:1.3}
.brand-mark{width:35px;height:35px;flex-shrink:0;stroke:#fff;stroke-width:1.6;fill:none}
.brand span{font-size:.81rem;letter-spacing:.07em;color:#d0dce8;border-left:1px solid #6a7b90;padding-left:14px;margin-left:2px}
.company-switch{padding:4px;border-radius:11px;background:#213951;border:1px solid #4c6076;gap:3px}
.company-switch button{border-radius:6px;min-height:39px;min-width:100px;padding:7px 16px;font-size:.92rem;font-weight:550}
.company-switch button[aria-pressed=true]{box-shadow:0 1px 4px #0d213c1c;font-weight:700}
.company-switch button:active{transform:scale(.96)}
#sync-entry{display:inline-flex;gap:8px;font-size:.87rem;min-height:44px;padding:9px 13px;border-color:#66798f;background:transparent;color:#ecf2f8}
#sync-entry:hover{background:#2d455f;border-color:#9aabbd;color:white}
.control-icon,.nav-icon{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.main-nav{max-width:none;gap:9px;padding:0 max(24px,calc((100vw - 1152px)/2));background:#fff;min-height:60px;border-bottom:1px solid #dce3eb;overflow:visible;align-items:stretch}
.main-nav a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:60px;padding:0 17px;position:relative;color:#526278;border-radius:0;font-size:.94rem;font-weight:550;text-decoration:none;transition:color 140ms ease-out,background-color 140ms ease-out}
.main-nav a:hover{background:#f5f7fa;color:var(--ink)}
.main-nav a[aria-current=page]{color:var(--accent);background:transparent;font-weight:700}
.main-nav a[aria-current=page]:after{position:absolute;content:'';height:3px;background:var(--accent);border-radius:3px 3px 0 0;left:16px;right:16px;bottom:-1px}
main{margin-top:32px;margin-bottom:44px}
.page-heading{margin-bottom:25px}
.page-heading p{margin-top:9px;font-size:.94rem;line-height:1.8;max-width:78ch}
.surface,.question-panel{box-shadow:var(--surface-shadow)}
.surface{margin:22px 0;padding:28px 30px;border-radius:14px}
.day-plan{gap:36px;grid-template-columns:minmax(0,1fr) 300px}
.day-plan>div>.row{padding-bottom:7px}
.day-plan>div>.row h2{margin-bottom:0}
.day-plan .tag{margin:0;background:var(--tint);color:var(--accent);font-weight:650;padding:5px 10px;border-radius:6px;font-variant-numeric:tabular-nums}
.task-row{padding:19px 0;gap:18px}
.task-row h3{font-size:1.04rem;line-height:1.6;font-weight:650}
.task-row p{font-size:.84rem;line-height:1.7;max-width:55ch;margin-top:4px}
.task-row>span.small{white-space:nowrap;font-size:.8rem;font-variant-numeric:tabular-nums}
.task-row>button{min-width:70px;min-height:42px;font-size:.88rem;color:var(--accent);border-color:#d4dde6}
.task-row:first-of-type>button{background:var(--accent);color:#fff;border-color:var(--accent)}
.task-row:first-of-type>button:hover{background:var(--ink);border-color:var(--ink)}
.day-plan aside{background:#f5f7fa;border:1px solid #e3e8ef;padding:23px 24px;border-radius:12px}
.day-plan aside h2{font-size:1.05rem;margin-bottom:17px}
.day-plan aside h3{font-size:.88rem;margin:22px 0 7px;color:#465a70}
.day-plan aside p{font-size:.88rem;line-height:1.9}
.day-plan aside p.small{font-size:.81rem;line-height:1.85}
.day-plan aside strong{font-variant-numeric:tabular-nums}
.day-plan aside hr{margin:21px 0;border-color:#dbe2eb}
.day-plan aside button{width:100%;margin-top:5px;font-size:.88rem}
.module{padding:24px 0}
.module h2{font-size:1.15rem;margin-bottom:8px}
.module .small{line-height:1.85}
.module .actions{gap:9px}
.module .actions button{font-size:.88rem}
.module .actions button:first-child{background:var(--tint);border-color:transparent;color:var(--accent)}
.module .actions button:first-child:hover{border-color:var(--accent)}
.filters{gap:12px 16px;align-items:center;margin:16px 0 22px}
.filters label{font-size:.88rem;line-height:2}
.filters input,.filters select{font-size:.91rem;min-height:44px}
.list-row{padding:20px 0;gap:18px}
.list-row h3{font-size:1rem;font-weight:650;line-height:1.7;overflow-wrap:anywhere}
.list-row p.small{font-size:.8rem;line-height:1.9}
.list-row .button,.list-row>button{white-space:nowrap;font-size:.85rem}
.notice{background:#eff4f9;color:#344d67;font-size:.91rem;line-height:1.9;padding:16px 19px}
.tag{font-size:.78rem;padding:4px 9px}
.question-top{padding-bottom:15px;margin-bottom:24px}
.question-top h1{font-size:1.13rem;letter-spacing:0;line-height:1.65}
.question-top>.row>span:not(.tag){font-size:.88rem;font-variant-numeric:tabular-nums;color:#506178}
.question-top .timer{font-size:1.45rem!important;color:var(--ink)!important}
.option{border-color:#d5dee8;box-shadow:0 1px 2px #172c4604}
.option-key{color:#425973;background:#f8fafc;border-color:#d6dfe9;border-radius:6px;font-size:.91rem;font-weight:650}
.option[aria-pressed=true] .option-key{color:#315677;background:#fff;border-color:#a4bcd6}
.feedback{background:#f4f7fa;padding:24px;border-radius:11px}
.feedback h2{font-size:1.15rem}
.feedback h3{font-size:.96rem}
.navigator{padding:21px 18px;border:1px solid #e2e8ef;border-radius:12px}
.navigator h2{font-size:1.05rem}
.navigator .small{font-size:.79rem;line-height:1.85}
.navigator .primary{font-size:.86rem;width:100%;margin-top:16px}
.nav-grid button{font-size:.82rem;box-shadow:none}
.navigator .filters{gap:8px;align-items:center}
.navigator .filters label{display:flex;align-items:center;gap:6px;white-space:nowrap;width:auto}
.navigator .filters input{min-width:0;width:70px;padding:8px 7px}
.navigator .filters button{padding:8px 11px}
.option{font-weight:400}
.nav-grid .answered{background:#edf3f9;border-color:#d1deeb}
.nav-grid .wrong{background:#fceef0;border-color:#e9cbd0;color:#a12c3e}
.nav-grid .right{background:#ebf5ef;border-color:#cce3d6;color:#286249}
.ink-toolbar{font-size:.87rem;gap:8px;background:#fff}
.ink-toolbar .small{font-size:.77rem}
.ink-toolbar button{font-size:.83rem}
.reader-wrap{background:#e9edf2;border:1px solid #dfe5ed}
.pdf-page{box-shadow:0 4px 16px #172c4614}
.note-unit{padding:26px 0;line-height:1.95}
.note-unit h2{font-size:1.15rem;margin-top:8px}
.note-unit dt{font-size:.92rem;color:#435a71;margin-top:18px}
.note-unit dd{margin-top:6px}
table.report{font-size:.93rem}
table.report th{font-size:.82rem;font-weight:650;color:#5b6b7d;background:#f5f7fa}
table.report td,table.report th{padding:14px 16px}
table.report tbody tr:hover{background:#fafbfd}
table.report td button{font-size:.83rem}
summary{font-size:.89rem;color:#4e637b;line-height:1.8}
details[open]>summary{color:var(--ink);font-weight:600}
.app-footer{max-width:1200px;margin:auto;padding:20px 24px 25px;font-size:.77rem;border-color:#dce4ed;line-height:1.8}
.app-footer a{color:#52667e}
#save-status:before{content:'';display:inline-block;vertical-align:middle;margin-right:8px;width:6px;height:6px;border-radius:50%;background:#697f95}
dialog{padding:30px;border-radius:15px;box-shadow:0 12px 60px #00000033}
dialog h2{margin-right:55px}
dialog p{font-size:.93rem;line-height:1.9}
dialog::backdrop{background:#132a476b}
dialog label{font-size:.88rem;font-weight:600}
dialog .actions{gap:9px}
dialog .actions button{font-size:.86rem}
::-webkit-scrollbar{width:9px;height:7px}
::-webkit-scrollbar-track{background:#f1f4f7}
::-webkit-scrollbar-thumb{background:#bac6d2;border:2px solid #f1f4f7;border-radius:6px}
@media(min-width:901px){.main-nav a{min-width:106px}.day-plan>div>.row h2{font-size:1.16rem}}
@media(max-width:1050px){.main-nav{gap:0}.main-nav a{padding-inline:13px;min-width:0;flex:1}.header-inner{gap:14px}.day-plan{gap:24px;grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:900px){.day-plan{grid-template-columns:1fr}.day-plan aside{display:block}.header-inner{padding-inline:24px}.brand span{display:none}.main-nav{padding-inline:17px}.navigator{border:1px solid #e0e6ed}.navigator .primary{width:auto}.surface{padding:24px}.day-plan aside{padding:22px 24px}}
@media(max-width:760px){.main-nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;padding:0 12px}.main-nav a{min-height:61px;flex-direction:column;gap:3px;padding:7px 1px 8px;font-size:.78rem;line-height:1.5}.main-nav .nav-icon{width:19px;height:19px;stroke-width:1.6}.main-nav a[aria-current=page]:after{left:9px;right:9px}.header-inner{min-height:74px;gap:12px}.company-switch button{min-width:84px;padding:7px 10px}.brand-mark{width:28px;height:28px}.brand{font-size:1.08rem;gap:9px}h1{font-size:1.7rem}.page-heading p{font-size:.9rem}}
@media(max-width:560px){.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;padding:12px 15px;min-height:71px;flex-wrap:nowrap}.brand{font-size:.98rem;gap:7px;letter-spacing:0}.brand-mark{width:25px;height:25px}.company-switch{margin:0;padding:3px;gap:2px;border-radius:9px}.company-switch button{font-size:.8rem;min-width:0;min-height:39px;padding:7px 10px}.company-switch button[aria-pressed=true]{border-radius:5px}#sync-entry{width:40px;min-height:44px;padding:9px;border-color:#6b7e93;min-width:40px}.button-label{display:none}.main-nav{padding-inline:7px}.main-nav a{font-size:.77rem;min-height:59px}.main-nav a[aria-current=page]:after{left:10px;right:10px}.main-nav .nav-icon{width:18px;height:18px}main{margin-top:25px;padding-inline:16px}.page-heading{margin-bottom:20px}h1{font-size:1.7rem;line-height:1.5}.page-heading p{font-size:.88rem;line-height:1.9}.surface{padding:22px 18px;margin:18px 0;border-radius:13px}.day-plan{gap:22px}.day-plan>div>.row{gap:10px}.day-plan>div>.row h2{font-size:1.04rem}.day-plan .tag{font-size:.73rem;padding:5px 8px}.task-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;padding:18px 0}.task-row .grow{grid-column:1;grid-row:1 / 3}.task-row>span.small{grid-column:2;grid-row:1;font-size:.75rem;text-align:center}.task-row>button{grid-column:2;grid-row:2;padding:8px 13px;min-height:42px;min-width:64px}.task-row h3{font-size:1rem}.task-row p{font-size:.8rem;line-height:1.85;margin-top:5px}.day-plan aside{padding:20px}.day-plan aside h2{font-size:1.06rem}.day-plan aside p{font-size:.9rem}.day-plan aside p.small{font-size:.82rem}.module h2{font-size:1.15rem}.module .small{font-size:.82rem}.module .actions{gap:8px}.module .actions button{font-size:.84rem;padding:9px 13px}.list-row{display:grid;grid-template-columns:auto auto;gap:11px 8px}.list-row .grow{grid-column:1 / -1}.list-row>button,.list-row>.button{min-height:44px;justify-self:start}.filters{gap:10px}.filters label{font-size:.86rem}.question-panel{border-radius:12px}.navigator{padding:16px}.navigator .primary{width:100%}.question-top h1{font-size:1.08rem}.feedback{padding:19px}.note-unit h2{font-size:1.14rem}table.report td,table.report th{padding:11px 9px}.app-footer{padding:18px 18px 25px;gap:6px;font-size:.76rem}.ink-toolbar{gap:7px}.ink-toolbar button{min-height:42px}.ink-toolbar .small{font-size:.74rem}dialog{padding:25px 21px}.dialog-close{min-height:40px;padding:7px 12px}dialog .actions button{font-size:.85rem}}
@media(max-width:360px){.brand-mark{display:none}.header-inner{gap:7px}.company-switch button{padding-inline:8px}.main-nav a{font-size:.71rem}}
@media(max-width:560px){#sync-entry{width:44px;min-width:44px}.company-switch button{min-height:44px}.task-row>button,.ink-toolbar button{min-height:44px}.nav-grid button{min-height:42px}}
@media(prefers-reduced-motion:reduce){button,.button,.main-nav a{transition:none}.company-switch button:active{transform:none}}
