/* UI 2.0 production adapter: visual layer only. Business selectors and handlers stay in production scripts. */
:root{--ui2-bg:#061d19;--ui2-deep:#041411;--ui2-card:rgba(10,46,40,.78);--ui2-card2:rgba(13,59,50,.86);--ui2-text:#f1f6f3;--ui2-muted:#a9beb7;--ui2-dim:#7f9991;--ui2-teal:#13c6b5;--ui2-cyan:#39c9ef;--ui2-line:rgba(132,214,201,.22);--ui2-warn:#f4a638}
html,body{background:var(--ui2-deep);color:var(--ui2-text)}
body{padding-bottom:calc(94px + env(safe-area-inset-bottom));background:radial-gradient(circle at 90% 6%,rgba(11,113,99,.18),transparent 30rem),linear-gradient(180deg,#08251f 0%,var(--ui2-bg) 42rem,var(--ui2-deep) 100%)}
.shell{width:min(100%,1000px);max-width:1000px;margin:0 auto}
.topbar{position:relative;min-height:178px;padding:26px 28px 18px;gap:16px;background:linear-gradient(90deg,rgba(3,25,20,.94),rgba(3,25,20,.64)),url("wadian-campus-scholarly-bg-v1.webp") center 42%/cover no-repeat;border-top:2px solid #0d554b;border-bottom:1px solid rgba(14,67,56,.35)}
.topbar .mark{width:82px;height:82px;flex-basis:82px;box-shadow:0 4px 20px rgba(0,0,0,.26);border:2px solid rgba(241,246,243,.75)}
.topbar h1{color:#f7fbf9;font-size:clamp(28px,5.5vw,42px);font-weight:760;line-height:1.1;text-shadow:0 2px 18px rgba(0,0,0,.2)}
.topbar p{color:rgba(241,246,243,.82);font-size:15px;letter-spacing:.08em}
.topbar .identity{color:var(--ui2-text);max-width:24%}.identity span{color:var(--ui2-muted)}
.strip{margin:0 28px;padding:12px 0;border-block:1px solid rgba(132,214,201,.12);color:var(--ui2-muted);font-size:14px}.strip strong{color:var(--ui2-text)}#serverTime{color:var(--ui2-muted)}
.content{padding:18px 28px 24px}.eyebrow{color:var(--ui2-dim);font-size:12px;letter-spacing:.08em}.action-card,.card,.quote,.install-entry,.field-action,.records-empty{border:1px solid var(--ui2-line);border-radius:20px;background:linear-gradient(145deg,rgba(13,59,50,.86),rgba(6,35,30,.74));box-shadow:0 18px 50px rgba(0,0,0,.18)}
.action-card{border-top:1px solid rgba(93,212,191,.34);padding:20px;margin-bottom:16px}.action-title h2,.no-regular-day h2{color:var(--ui2-text);font-size:clamp(22px,4vw,28px)}.count{color:#7ae8dc;font-size:22px}.action-hint,.status{color:var(--ui2-muted);font-size:15px}.main-punch{background:linear-gradient(135deg,#13bfae,#089e8f);border-radius:16px;box-shadow:0 12px 26px rgba(0,170,148,.2)}
.records-section{margin-bottom:16px}.section-title h2{color:var(--ui2-text);font-size:20px}.text-btn{color:var(--ui2-teal)}
.daily-grid.ui2-timeline{position:relative;display:grid;gap:0;padding:8px 14px;border:1px solid var(--ui2-line);border-radius:20px;background:rgba(6,35,30,.74);overflow:hidden}.ui2-timeline::before{content:"";position:absolute;top:27px;bottom:27px;left:61px;width:2px;background:linear-gradient(var(--ui2-teal),rgba(19,198,181,.18))}.ui2-timeline-row{position:relative;display:grid;grid-template-columns:42px 18px minmax(0,1fr);align-items:center;gap:8px;min-height:62px;border-bottom:1px solid rgba(132,214,201,.08)}.ui2-timeline-row:last-child{border-bottom:0}.ui2-period{color:var(--ui2-muted);font-size:13px;font-weight:600}.ui2-node{z-index:1;width:15px;height:15px;border:3px solid #0b332d;border-radius:50%;background:#839a94;box-shadow:0 0 0 2px currentColor;color:#839a94}.ui2-timeline-row.tone-normal .ui2-node{color:#20d2af;background:#20d2af}.ui2-timeline-row.tone-attention .ui2-node{color:#f4a638;background:#f4a638}.ui2-timeline-row.tone-pending .ui2-node{color:#839a94;background:#839a94}.ui2-row-content{display:block;min-width:0}.ui2-row-time{color:var(--ui2-muted);font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.ui2-row-content .punch{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:0;min-width:0}.ui2-row-content .punch .dot{display:none}.ui2-row-content .punch-info{min-width:0}.ui2-row-content .punch-info span{display:none}.ui2-row-content .punch-info strong{display:block;color:var(--ui2-text);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui2-row-content .punch-info strong.ok{color:#20d2af}.ui2-row-content .punch-info strong.warn{color:#f4a638}.ui2-row-content .punch .btn{min-height:30px;min-width:max-content;padding:4px 8px;border-radius:99px;background:rgba(19,198,181,.12);border:0;color:var(--ui2-teal);font-size:12px;white-space:nowrap}.ui2-row-content .punch .btn:disabled{background:rgba(178,192,189,.12);color:var(--ui2-muted)}
.quote{display:flex;align-items:center;gap:11px;min-height:70px;padding:10px 15px;border-left:3px solid var(--ui2-warn);background:linear-gradient(100deg,rgba(71,55,25,.42),rgba(11,44,37,.7))}.quote .eyebrow{color:#ffbd51}.quote p:last-child{color:var(--ui2-text);font-size:16px;line-height:1.5;margin:0}.quote:after{content:"›";margin-left:auto;color:var(--ui2-muted);font-size:28px}
.ui2-quick-section{padding:2px 0 8px}.ui2-section-heading{display:flex;align-items:center;gap:5px;margin:0 0 10px}.ui2-section-heading h2{margin:0;color:var(--ui2-teal);font-size:19px}.ui2-section-mark{color:var(--ui2-teal);font-size:30px;line-height:1}.ui2-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ui2-quick-card{display:grid;grid-template-columns:36px minmax(0,1fr) 12px;align-items:center;gap:7px;min-height:92px;padding:10px;border:1px solid var(--ui2-line);border-radius:18px;background:rgba(11,49,43,.72);color:var(--ui2-text);text-align:left}.ui2-quick-card:hover{border-color:rgba(19,198,181,.52);background:rgba(13,62,53,.86)}.ui2-quick-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(19,198,181,.13);color:var(--ui2-teal);font-size:20px}.ui2-quick-card:nth-child(2) .ui2-quick-icon{color:var(--ui2-cyan)}.ui2-quick-card:nth-child(3) .ui2-quick-icon{color:#ffb740}.ui2-quick-card:nth-child(4) .ui2-quick-icon{color:#ba8df7}.ui2-quick-card strong,.ui2-quick-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui2-quick-card strong{font-size:15px}.ui2-quick-card small{margin-top:3px;color:var(--ui2-muted);font-size:12px;letter-spacing:-.02em}.ui2-arrow{color:var(--ui2-dim);font-size:22px;text-align:right}
.field-action,.leave-operation{border-color:var(--ui2-line);background:rgba(4,25,21,.42);color:var(--ui2-muted)}.field-entry-row{color:var(--ui2-muted)}.field-entry-button{background:rgba(19,198,181,.12);border-color:rgba(19,198,181,.35);color:var(--ui2-teal)}.help{border-top:1px solid var(--ui2-line);color:var(--ui2-muted)}.help summary{color:var(--ui2-teal)}
.nav{gap:5px;padding:7px 10px calc(7px + env(safe-area-inset-bottom));border-top:1px solid rgba(132,214,201,.14);background:rgba(4,25,21,.86);backdrop-filter:blur(18px)}.nav button{min-height:52px;border-radius:15px;color:var(--ui2-dim);font-size:13px}.nav button.active{color:var(--ui2-teal);background:rgba(19,198,181,.12)}
.input,.record,.inline,.rules,.seg,.row,.makeup-card,.field-card,.leave-card{background:rgba(10,46,40,.78);border-color:var(--ui2-line);color:var(--ui2-text)}.input{color:var(--ui2-text)}.seg{background:rgba(4,25,21,.5)}.seg button.active{background:rgba(19,198,181,.12);color:var(--ui2-teal)}.record-head span,.row span,.note,.empty{color:var(--ui2-muted)}.grid4 p,.grid3 p{background:rgba(19,198,181,.08)}.install-entry{background:rgba(11,49,43,.72);color:var(--ui2-text)}
@media (min-width:860px){.topbar{min-height:205px;padding-top:30px}.nav{right:0;left:0;bottom:16px;width:min(100% - 32px,460px);margin:0 auto;border:1px solid rgba(132,214,201,.16);border-radius:18px;box-shadow:0 14px 32px rgba(0,0,0,.2)}}
@media (max-width:600px){.topbar{min-height:178px;padding:22px 16px 16px}.topbar .mark{width:68px;height:68px;flex-basis:68px}.topbar h1{font-size:28px}.strip{margin-inline:16px}.content{padding:16px}.daily-grid.ui2-timeline{padding-inline:10px}.ui2-timeline::before{left:55px}.ui2-row-content{display:block}.ui2-row-content .punch .btn{font-size:11px;padding-inline:7px}.ui2-quick-card{grid-template-columns:32px minmax(0,1fr) 10px;gap:4px;padding:8px}.ui2-quick-icon{width:32px;height:32px;font-size:18px}.ui2-quick-card strong{font-size:14px}.ui2-quick-card small{font-size:12px}}
@media (max-width:380px){.topbar{padding-inline:12px}.topbar .mark{width:60px;height:60px;flex-basis:60px}.topbar h1{font-size:24px}.strip{margin-inline:12px}.content{padding-inline:12px}.ui2-timeline-row{grid-template-columns:36px 16px minmax(0,1fr);gap:6px}.ui2-timeline::before{left:50px}.ui2-row-content{display:block}.ui2-row-content .punch .btn{font-size:10px;padding-inline:5px}}

/* UI2 production hotfix: hide duplicate legacy presentation while retaining business containers. */
.install-entry{display:none !important;min-height:0}
.install-entry.install-hint-mode,.install-entry.install-action-mode{display:flex !important;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;margin:8px 0;border:0;border-left:2px solid rgba(19,198,181,.35);border-radius:10px;background:rgba(10,46,40,.32);box-shadow:none;color:var(--ui2-muted)}
.install-entry.install-hint-mode .install-hint{font-size:13px;color:var(--ui2-dim)}
.install-entry.install-action-mode .install-entry-copy{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ui2-muted)}
.install-entry.install-action-mode .install-entry-copy strong{font-size:13px;color:var(--ui2-text)}
.install-entry.install-action-mode .install-entry-button{min-height:30px;padding:5px 10px;border-radius:999px;background:rgba(19,198,181,.12);border:1px solid rgba(19,198,181,.35);color:var(--ui2-teal);font-size:12px}
.field-action.other-actions>.eyebrow,.field-action.other-actions>.field-entry-row,.field-action.other-actions>.field-help,.field-action.other-actions>#fieldFeedback,.field-action.other-actions>#fieldVerify,.field-action.other-actions>.field-card{display:none !important}
.field-action.other-actions,.field-action.other-actions .leave-operation{margin:0 !important;padding:0 !important;border:0 !important;background:transparent !important;box-shadow:none !important}
.field-action.other-actions .leave-operation>.field-entry-row,.field-action.other-actions .leave-operation>#leaveFeedback,.field-action.other-actions .leave-operation>#reloadLeave,.field-action.other-actions .leave-operation>#leaveVerify,.field-action.other-actions .leave-operation>.leave-history{display:none !important}
.field-action.other-actions:not(.ui2-flow-open) #fieldFormArea:empty,.field-action.other-actions:not(.ui2-flow-open) .leave-operation #leaveFormArea:empty{display:none !important}
.field-action.other-actions.ui2-flow-open{display:block;border:0;padding:0;margin:0;background:transparent;box-shadow:none}
.field-action.other-actions.ui2-flow-open>#fieldFeedback,.field-action.other-actions.ui2-flow-open>#fieldVerify,.field-action.other-actions.ui2-flow-open>.field-card,.field-action.other-actions.ui2-flow-open .leave-operation>#leaveFeedback,.field-action.other-actions.ui2-flow-open .leave-operation>#reloadLeave,.field-action.other-actions.ui2-flow-open .leave-operation>#leaveVerify{display:block !important}
.field-action.other-actions.ui2-flow-open #fieldFormArea,.field-action.other-actions.ui2-flow-open .leave-operation #leaveFormArea{display:block !important}
.makeup-entry{display:none !important}
details.help{display:none}
details.help.ui2-guide-open{display:block;margin:10px 0;padding:12px 14px;border:1px solid var(--ui2-line);border-radius:16px;background:rgba(10,46,40,.78)}
details.help.ui2-guide-open>summary{display:none}

/* 2026 National Day light seasonal theme: visual layer only; active class is date-gated in index.html. */body.national-day-theme{--national-gold:#e8c27a;--national-red:#a83a32;background:radial-gradient(circle at 12% 4%,rgba(168,58,50,.10),transparent 24rem),radial-gradient(circle at 90% 6%,rgba(218,176,92,.09),transparent 24rem),linear-gradient(180deg,#08251f 0%,var(--ui2-bg) 42rem,var(--ui2-deep) 100%)}body.national-day-theme .topbar{border-top-color:rgba(181,72,61,.72);border-bottom-color:rgba(232,194,122,.20)}body.national-day-theme .school-title::after{content:"金风送爽 · 家国同庆 🇨🇳";display:block;margin-top:7px;color:#f0cf8a;font-size:13px;line-height:1.5;letter-spacing:.12em;font-family:"STSong","Songti SC","Noto Serif CJK SC",serif;text-shadow:0 1px 10px rgba(0,0,0,.28)}body.national-day-theme .strip{border-block-color:rgba(232,194,122,.16)}body.national-day-theme .quote{border-left-color:rgba(232,194,122,.72)}body.national-day-theme .content::after{content:"山河清晏，岁序安和。愿所行皆坦途，所归皆灯火。";display:block;margin:24px 8px 4px;text-align:center;color:rgba(240,207,138,.78);font-size:14px;line-height:1.9;letter-spacing:.08em;font-family:"STSong","Songti SC","Noto Serif CJK SC",serif}

/* National Day V1.1 mobile typography refinement. */
.quote .eyebrow{white-space:nowrap;flex:0 0 auto}
.quote p:last-child{min-width:0}
body.national-day-theme .content::after{content:"山河清晏，岁序安和。\A愿所行皆坦途，所归皆灯火。";white-space:pre-line;letter-spacing:.06em}


