:root{--bg: #EDEAE1;--surface: #FFFFFF;--page: #F4F7FA;--border: #D9E2EA;--ink: #16273A;--ink-muted: #5B6B7A;--faint: #8A97A5;--primary: #0B4A87;--gold: #E0A526;--recruit: #C0392B;--brown: #8B5A2B;--alert: #B23A48;--sidebar-w: 220px;--content-max: 900px}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;max-width:none}html,body{background:var(--page);font-family:Noto Sans TC,sans-serif;color:var(--ink);-webkit-text-size-adjust:100%}html{overflow-x:hidden}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button,input,select{font-family:inherit}.app-shell{width:100%;min-height:100vh;min-height:100dvh;background:var(--page);display:flex;flex-direction:column;position:relative}.app-content-col{flex:1;display:flex;flex-direction:column;min-width:0}.app-main{flex:1;padding:16px 16px 90px;display:flex;flex-direction:column;gap:16px}.bottom-nav{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:8px 4px}.sidebar-nav{display:none}.auth-shell{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.card-grid{display:flex;flex-direction:column;gap:16px}.stat-row{display:flex;justify-content:space-between}@media (max-width: 767px),(pointer: coarse){input,select,textarea{font-size:16px!important;max-width:100%}}@media (min-width: 768px){html,body{background:var(--bg)}.app-shell{max-width:var(--content-max);margin:0 auto;flex-direction:row;align-items:stretch;min-height:100vh}.sidebar-nav{display:flex;flex-direction:column;width:var(--sidebar-w);flex-shrink:0;background:#fff;border-right:1px solid var(--border);padding:20px 12px;gap:4px;position:sticky;top:0;height:100vh}.bottom-nav{display:none}.app-content-col{flex:1;display:flex;flex-direction:column;min-width:0}.app-main{padding:24px 28px 28px;display:grid;grid-template-columns:repeat(2,1fr);gap:18px;align-content:start;align-items:start}.app-main>.span-2{grid-column:1 / -1}.card-grid{flex-direction:row;flex-wrap:wrap}.card-grid>*{flex:1 1 260px}.mobile-logout{display:none}}@media (min-width: 1200px){:root{--content-max: 1080px;--sidebar-w: 240px}}
