@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Syne:wght@400;600;700;800&family=Noto+Sans+JP:wght@300;400;500;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--emerald:#10b981;--emerald-2:#0ea371;--cyan:#06b6d4;--violet:#8b5cf6;--amber:#f59e0b;--rose:#f43f5e;--bg-token:#0a0f1c;--surface-token:#0f172a;--surface-2-token:#0b1326;--line-token:#ffffff14;--line-2-token:#ffffff0d;--ink-token:#f1f5f9;--ink-2-token:#cbd5e1;--mute-token:#7b8aa1;--pill-bg:#ffffff0f;--aurora-1:#10b98138;--aurora-2:#06b6d438;--aurora-3:#8b5cf633;--shadow-card:0 1px 0 #ffffff0a inset, 0 8px 24px -8px #0000008c;--shadow-float:0 1px 0 #ffffff0a inset, 0 24px 60px -20px #000000b3;--glass-bg:linear-gradient(180deg, #ffffff0d, #ffffff05);--glass-border:#ffffff14;--aurora-blend:screen;--bg:var(--bg-token);--surface:var(--surface-token);--surface2:var(--surface-2-token);--border:var(--line-token);--accent:var(--emerald);--accent2:var(--amber);--accent3:var(--violet);--text:var(--ink-token);--muted:var(--mute-token);--danger:var(--rose);--radius:16px;--sidebar-w:280px;--font-base:16px;--touch-min:48px;--font-display:"Manrope", "Syne", "Noto Sans JP", system-ui, sans-serif;--font-body:"Inter", "Noto Sans JP", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-syne:"Syne", "Manrope", "Noto Sans JP", sans-serif}:root[data-theme=light]{--bg-token:#f8fafc;--surface-token:#fff;--surface-2-token:#f2f7f5;--line-token:#e6eaf0;--line-2-token:#eef2f6;--ink-token:#0b1220;--ink-2-token:#1f2937;--mute-token:#5b6678;--pill-bg:#ffffffb3;--aurora-1:#a7f3d08c;--aurora-2:#bae6fd8c;--aurora-3:#ddd6fe73;--shadow-card:0 1px 0 #0f172a0a, 0 8px 24px -12px #0f172a2e;--shadow-float:0 1px 0 #0f172a0a, 0 24px 60px -28px #0f172a47;--glass-bg:linear-gradient(180deg, #ffffffdb, #ffffffa8);--glass-border:#ffffffb3;--aurora-blend:multiply}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg-token:#f8fafc;--surface-token:#fff;--surface-2-token:#f2f7f5;--line-token:#e6eaf0;--line-2-token:#eef2f6;--ink-token:#0b1220;--ink-2-token:#1f2937;--mute-token:#5b6678;--pill-bg:#ffffffb3;--aurora-1:#a7f3d08c;--aurora-2:#bae6fd8c;--aurora-3:#ddd6fe73;--shadow-card:0 1px 0 #0f172a0a, 0 8px 24px -12px #0f172a2e;--shadow-float:0 1px 0 #0f172a0a, 0 24px 60px -28px #0f172a47;--glass-bg:linear-gradient(180deg, #ffffffdb, #ffffffa8);--glass-border:#ffffffb3;--aurora-blend:multiply}}html{font-size:var(--font-base)}body{background:var(--bg);color:var(--text);font-family:var(--font-body);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background .25s,color .25s}:focus-visible{outline:2px solid var(--emerald);outline-offset:2px;border-radius:6px}button:focus-visible,a:focus-visible{outline:2px solid var(--emerald);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;box-shadow:0 0 0 2px #10b98140;border-color:var(--emerald)!important}:focus:not(:focus-visible){outline:none}.aurora{filter:blur(60px)saturate(110%);pointer-events:none;z-index:0;position:absolute;inset:-15%}.aurora .blob{will-change:transform;mix-blend-mode:var(--aurora-blend);border-radius:9999px;position:absolute}.aurora .b1{background:var(--aurora-1);width:300px;height:300px;animation:22s ease-in-out infinite alternate drift1;top:-100px;left:-80px}.aurora .b2{background:var(--aurora-2);width:280px;height:280px;animation:26s ease-in-out infinite alternate drift2;top:40px;right:-80px}.aurora .b3{background:var(--aurora-3);width:260px;height:260px;animation:30s ease-in-out infinite alternate drift3;bottom:-100px;left:30%}@keyframes drift1{0%{transform:translate(0)scale(1)}to{transform:translate(4vw,3vw)scale(1.08)}}@keyframes drift2{0%{transform:translate(0)scale(1)}to{transform:translate(-3vw,4vw)scale(1.06)}}@keyframes drift3{0%{transform:translate(0)scale(1)}to{transform:translate(-2vw,-3vw)scale(1.1)}}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(14px)saturate(140%);border:1px solid var(--glass-border);box-shadow:var(--shadow-card)}.pill{background:var(--pill-bg);border:1px solid var(--border);font-family:var(--font-mono);letter-spacing:.06em;color:var(--text);text-transform:uppercase;border-radius:9999px;align-items:center;gap:6px;padding:4px 10px;font-size:10px;display:inline-flex}.dot-live{background:var(--emerald);border-radius:9999px;width:7px;height:7px;animation:2.4s ease-out infinite pingDot;display:inline-block;box-shadow:0 0 #10b9818c}@keyframes pingDot{0%{box-shadow:0 0 #10b9818c}80%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}.grad-text{background:linear-gradient(92deg, currentColor 0%, currentColor 25%, var(--cyan) 50%, var(--emerald) 75%, currentColor 100%);color:#0000;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:9s linear infinite gradShine}@keyframes gradShine{0%{background-position:0%}to{background-position:220%}}.logomark{background:conic-gradient(from 200deg, var(--emerald), var(--cyan), var(--violet), var(--emerald));border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:relative}.logomark:after{content:"";background:var(--surface);border-radius:7px;position:absolute;inset:2px}.logomark span{z-index:1;font-family:var(--font-display);background:linear-gradient(135deg, var(--emerald), var(--cyan));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:13px;font-weight:800;position:relative}.aura-emerald{box-shadow:inset 0 1px #ffffff0d,0 0 0 1px #10b98133,0 24px 48px -24px #10b98173}.aura-cyan{box-shadow:inset 0 1px #ffffff0d,0 0 0 1px #06b6d433,0 24px 48px -24px #06b6d473}.aura-violet{box-shadow:inset 0 1px #ffffff0d,0 0 0 1px #8b5cf633,0 24px 48px -24px #8b5cf673}.aura-amber{box-shadow:inset 0 1px #ffffff0d,0 0 0 1px #f59e0b33,0 24px 48px -24px #f59e0b73}.aura-rose{box-shadow:inset 0 1px #ffffff0d,0 0 0 1px #f43f5e33,0 24px 48px -24px #f43f5e73}.lift{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}.lift:hover{transform:translateY(-3px)}.reveal{opacity:0;transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1);transform:translateY(14px)}.reveal.in{opacity:1;transform:translateY(0)}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(180deg, var(--emerald) 0%, var(--emerald-2) 100%);font-size:13px;font-weight:600;font-family:var(--font-body);border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 14px;transition:transform .25s,box-shadow .25s;display:inline-flex;box-shadow:inset 0 1px #fff6,0 8px 18px -8px #10b9818c}.btn-primary:hover{transform:translateY(-1px);box-shadow:inset 0 1px #fff6,0 12px 22px -8px #10b981b3}.btn-ghost{background:var(--surface);color:var(--text);border:1px solid var(--border);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-body);border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;display:inline-flex}.gd-display{font-family:var(--font-display);letter-spacing:-.02em}.gd-mono{font-family:var(--font-mono)}.layout{max-width:1600px;min-height:100vh;margin:0 auto;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);padding:max(32px, env(safe-area-inset-top)) 20px max(32px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.sidebar-logo{font-family:var(--font-syne);color:var(--emerald);letter-spacing:-.5px;margin-bottom:32px;font-size:24px;font-weight:800}.sidebar-logo span{color:var(--text)}.theme-toggle{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;font-size:12px;font-weight:500;font-family:var(--font-body);border-radius:12px;justify-content:center;align-items:center;gap:6px;margin-bottom:14px;padding:10px 12px;transition:background .2s,border-color .2s;display:inline-flex}.theme-toggle:hover{background:var(--bg);border-color:#10b9814d}.theme-toggle .ico{font-size:14px}.nav-list{flex-direction:column;flex:1;gap:4px;display:flex}.nav-item{cursor:pointer;color:var(--muted);min-height:var(--touch-min);-webkit-user-select:none;user-select:none;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;font-size:15px;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{color:var(--emerald);background:#10b9811f;font-weight:600}.nav-icon{text-align:center;width:24px;font-size:20px}.nav-badge{background:var(--rose);color:#fff;border-radius:99px;margin-left:auto;padding:2px 7px;font-size:11px;font-weight:700}.sidebar-user{border-top:1px solid var(--border);align-items:center;gap:12px;margin-top:16px;padding:14px;display:flex}.avatar{background:linear-gradient(135deg, var(--emerald), var(--violet));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.user-name{font-size:14px;font-weight:500}.user-sub{color:var(--muted);margin-top:2px;font-size:11px}.main{padding:max(32px, env(safe-area-inset-top)) max(32px, env(safe-area-inset-right)) 32px max(32px, env(safe-area-inset-left));scrollbar-width:thin;scrollbar-color:var(--surface2) transparent;flex:1;position:relative;overflow-y:auto}.main::-webkit-scrollbar{width:6px}.main::-webkit-scrollbar-thumb{background:var(--surface2);border-radius:3px}.page-header{z-index:2;justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex;position:relative}.page-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:32px;font-weight:800;line-height:1.1}.page-title span{color:var(--emerald)}.page-sub{font-family:var(--font-mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:6px;font-size:11px}.grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:20px;position:relative}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title{font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:700}.card-action{color:var(--emerald);cursor:pointer;opacity:.85;min-height:var(--touch-min);align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:flex}.deadline-item{background:var(--surface2);cursor:pointer;min-height:var(--touch-min);border-radius:12px;align-items:center;gap:14px;margin-bottom:8px;padding:14px 16px;transition:opacity .2s,background .2s;display:flex;position:relative;overflow:hidden}.deadline-item:before{content:"";width:3px;position:absolute;top:0;bottom:0;left:0}.deadline-item.urgent:before{background:var(--rose)}.deadline-item.soon:before{background:var(--amber)}.deadline-item.ok:before{background:var(--emerald)}.deadline-item.done:before{background:var(--muted);opacity:.4}.deadline-item.done{opacity:.45}.deadline-item:hover{background:var(--surface)}.item-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.item-icon.urgent{background:#f43f5e26}.item-icon.soon{background:#f59e0b26}.item-icon.ok{background:#10b98126}.item-icon.done{background:#7b8aa11a}.item-body{flex:1;min-width:0}.item-title{white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:15px;font-weight:600;overflow:hidden}.item-subject{color:var(--muted);background:var(--surface);font-size:11px;font-family:var(--font-mono);border-radius:4px;padding:2px 7px;display:inline-block}.item-deadline{text-align:right;font-size:12px;font-weight:700;font-family:var(--font-mono);flex-shrink:0}.item-deadline.urgent{color:var(--rose)}.item-deadline.soon{color:var(--amber)}.item-deadline.ok{color:var(--emerald)}.item-deadline.done{color:var(--muted);text-decoration:line-through}.timetable{grid-template-columns:60px repeat(5,1fr);gap:4px;display:grid}.timetable-header{background:var(--surface2);text-align:center;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;min-height:40px;padding:8px;font-size:13px;font-weight:700;display:flex}.timetable-period{background:var(--surface2);text-align:center;color:var(--muted);min-height:80px;font-size:11px;font-family:var(--font-mono);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px;display:flex}.timetable-cell{cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;min-height:80px;padding:10px;font-size:12px;transition:opacity .2s,transform .2s;display:flex}.timetable-cell:hover{transform:translateY(-1px)}.timetable-cell.empty{background:var(--surface2);opacity:.3}.timetable-cell.filled{opacity:1;font-weight:500}.cell-name{font-size:13px;font-weight:600;font-family:var(--font-display);margin-bottom:4px}.cell-room{opacity:.7;font-size:10px;font-family:var(--font-mono)}.money-stat{flex-direction:column;gap:4px;display:flex}.money-label{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:11px;font-family:var(--font-mono)}.money-amount{font-family:var(--font-display);letter-spacing:-.02em;font-size:28px;font-weight:800}.money-amount.positive{color:var(--emerald)}.money-amount.negative{color:var(--rose)}.money-sub{color:var(--muted);font-size:11px}.money-bar{background:var(--surface2);border-radius:3px;height:6px;margin:12px 0;overflow:hidden}.money-bar-fill{background:linear-gradient(90deg, var(--emerald), var(--amber));border-radius:3px;height:100%;transition:width .5s;box-shadow:0 0 10px -2px #f59e0b80}.money-list-item{border-bottom:1px solid var(--border);min-height:var(--touch-min);justify-content:space-between;align-items:center;padding:12px 0;font-size:14px;display:flex}.money-list-item:last-child{border-bottom:none}.money-list-label{color:var(--text)}.money-list-date{color:var(--muted);font-size:11px;font-family:var(--font-mono);margin-top:2px}.money-list-amount{font-weight:700;font-family:var(--font-mono);font-size:16px}.note-card{background:var(--surface2);cursor:pointer;border:1px solid var(--border);border-radius:14px;flex-direction:column;height:180px;padding:18px;transition:background .2s,transform .15s,box-shadow .25s;display:flex;overflow:hidden}.note-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}.note-title{font-size:15px;font-weight:600;font-family:var(--font-display);margin-bottom:8px}.note-preview{color:var(--muted);flex:1;font-size:13px;line-height:1.6;overflow:hidden}.note-meta{color:var(--muted);font-size:10px;font-family:var(--font-mono);gap:8px;margin-top:10px;display:flex}.note-tag{background:var(--surface);border-radius:4px;padding:2px 7px}.insight-card{border-radius:var(--radius);background:linear-gradient(135deg,#10b98114,#8b5cf614);border:1px solid #10b98133;align-items:flex-start;gap:14px;margin-bottom:20px;padding:20px;display:flex}.insight-icon{flex-shrink:0;font-size:24px}.insight-text{opacity:.9;font-size:14px;line-height:1.7}.insight-text strong{color:var(--emerald);font-weight:600}.quick-input{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:center;gap:10px;margin-bottom:24px;padding:10px 14px;transition:border-color .2s,box-shadow .2s;display:flex}.quick-input:focus-within{border-color:#10b98166;box-shadow:0 0 0 3px #10b9811a}.quick-input-field{color:var(--text);font-size:15px;font-family:var(--font-body);min-height:var(--touch-min);background:0 0;border:none;outline:none;flex:1}.quick-input-field::placeholder{color:var(--muted)}.input-btn{cursor:pointer;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;transition:transform .15s;display:flex}.input-btn:hover{transform:scale(1.08)}.input-btn:active{transform:scale(.95)}.input-btn.mic{background:#10b98126}.input-btn.cam{background:#f59e0b26}.input-btn.pdf{background:#8b5cf626}.input-btn.send{background:linear-gradient(180deg, var(--emerald) 0%, var(--emerald-2) 100%);color:#fff;font-size:20px;font-weight:700;box-shadow:0 4px 12px -4px #10b98180}.pdf-viewer{background:var(--surface2);border-radius:var(--radius);max-height:70vh;padding:20px;overflow:auto}.pdf-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.pdf-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;height:var(--touch-min);font-size:13px;font-family:var(--font-body);border-radius:8px;align-items:center;padding:0 18px;transition:background .15s;display:flex}.pdf-btn:hover{background:var(--surface2)}.pdf-btn.primary{background:linear-gradient(180deg, var(--emerald), var(--emerald-2));color:#fff;border-color:#0000;font-weight:600;box-shadow:0 4px 12px -4px #10b98180}.pdf-page-info{color:var(--muted);font-size:13px;font-family:var(--font-mono);margin:0 auto}.pdf-canvas-wrap{justify-content:center;display:flex}.pdf-canvas-wrap canvas{border-radius:8px;max-width:100%}.canvas-toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding:12px 0;display:flex}.tool-btn{border:1px solid var(--border);background:var(--surface2);height:44px;color:var(--text);cursor:pointer;white-space:nowrap;font-size:13px;font-family:var(--font-body);border-radius:10px;align-items:center;gap:6px;padding:0 16px;transition:background .15s;display:flex}.tool-btn:hover{background:var(--surface)}.tool-btn.active{border-color:var(--emerald);color:var(--emerald);background:#10b98126}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:28px;height:28px;transition:border-color .15s,transform .15s}.color-swatch.active{border-color:var(--text);transform:scale(1.2)}.stroke-slider{accent-color:var(--emerald);cursor:pointer}.modal-bg{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:500;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}@keyframes popIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:540px;box-shadow:var(--shadow-float);border-radius:24px;padding:28px;animation:.2s popIn;position:relative}.modal-title{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:20px;font-size:20px;font-weight:700}.modal-input{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);font-size:15px;font-family:var(--font-body);min-height:var(--touch-min);border-radius:12px;outline:none;margin-bottom:10px;padding:14px 16px;transition:border-color .2s,box-shadow .2s}.modal-input:focus{border-color:var(--emerald);box-shadow:0 0 0 3px #10b9811f}.modal-select{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);min-height:var(--touch-min);cursor:pointer;font-size:15px;font-family:var(--font-body);border-radius:12px;outline:none;margin-bottom:10px;padding:14px 16px}.modal-row{gap:10px;display:flex}.modal-btn{background:linear-gradient(180deg, var(--emerald), var(--emerald-2));color:#fff;width:100%;font-size:15px;font-weight:700;font-family:var(--font-body);cursor:pointer;min-height:var(--touch-min);border:none;border-radius:12px;margin-top:8px;padding:16px;transition:opacity .2s,transform .2s;box-shadow:0 6px 16px -6px #10b98180}.modal-btn:hover{transform:translateY(-1px)}.modal-btn.cancel{background:var(--surface2);color:var(--text);box-shadow:none}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.toast{bottom:max(32px, calc(env(safe-area-inset-bottom,0px) + 24px));background:var(--surface);border:1px solid var(--emerald);color:var(--emerald);z-index:1000;text-align:center;word-break:break-word;border-radius:12px;max-width:min(92vw,480px);padding:12px 22px;font-size:14px;font-weight:500;line-height:1.5;animation:.3s slideUp;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0006}@media (width<=640px){.toast{bottom:calc(80px + env(safe-area-inset-bottom,0px))}}.fab{background:linear-gradient(135deg, var(--emerald), var(--cyan));cursor:pointer;color:#fff;z-index:100;border:none;border-radius:18px;justify-content:center;align-items:center;width:60px;height:60px;font-size:28px;transition:transform .2s,box-shadow .25s;display:flex;position:fixed;bottom:32px;right:32px;box-shadow:0 12px 24px -8px #10b9818c,inset 0 1px #fff6}.fab:hover{transform:scale(1.08);box-shadow:0 16px 32px -8px #10b981b3,inset 0 1px #fff6}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.rec-dot{background:var(--rose);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite pulse;display:inline-block}*{scrollbar-width:thin;scrollbar-color:var(--surface2) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--surface2);border-radius:3px}.bottom-nav,.bottom-nav-item{display:none}@media (width<=640px){:root{--sidebar-w:0px}.sidebar{display:none}.main{padding:max(16px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) calc(80px + env(safe-area-inset-bottom,0px)) max(14px, env(safe-area-inset-left))}.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}.page-title{font-size:26px}.page-header{margin-bottom:16px}.canvas-toolbar{gap:4px}.tool-btn{padding:0 10px;font-size:12px}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);z-index:200;padding:6px max(0px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(0px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-height:56px;padding:6px 2px;font-size:22px;transition:color .15s;display:flex;position:relative}.bottom-nav-item.active{color:var(--emerald)}.bottom-nav-label{font-size:10px;line-height:1}.bottom-badge{background:var(--rose);color:#fff;text-align:center;border-radius:99px;min-width:16px;padding:1px 5px;font-size:9px;font-weight:700;position:absolute;top:-4px;right:-6px}.modal{max-width:100%;padding-bottom:max(28px, calc(env(safe-area-inset-bottom) + 16px));padding-left:max(28px, env(safe-area-inset-left));padding-right:max(28px, env(safe-area-inset-right));border-radius:20px 20px 0 0;margin:0;position:fixed;bottom:0;left:0;right:0}.modal-bg{align-items:flex-end;padding:0}}@media (width>=641px) and (width<=900px) and (orientation:portrait){:root{--sidebar-w:72px}.sidebar{align-items:center;padding:20px 10px}.sidebar-logo{text-align:center;margin-bottom:24px;font-size:14px}.nav-item{justify-content:center;gap:0;padding:12px 8px}.nav-item span:not(.nav-icon):not(.nav-badge){display:none}.nav-icon{width:auto;font-size:22px}.sidebar-user{flex-direction:column;gap:4px;padding:10px 0}.user-name,.user-sub{display:none}.theme-toggle{padding:8px;font-size:11px}.theme-toggle .label{display:none}.main{padding:20px 16px}.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}.page-title{font-size:24px}}.note-editor-fullscreen{background:var(--bg);z-index:200;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;display:flex;position:fixed;inset:0}.ai-input-row{align-items:flex-end;gap:8px;display:flex}.ai-input-actions{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.timetable-wrap{width:100%}.fab.fab-ai{bottom:max(24px, env(safe-area-inset-bottom));right:max(24px, env(safe-area-inset-right));z-index:250}@media (width<=640px){.timetable-wrap{-webkit-overflow-scrolling:touch;margin:0 -14px;padding:0 14px 4px;overflow-x:auto}.timetable{grid-template-columns:44px repeat(6,minmax(76px,1fr));gap:3px;min-width:100%}.timetable-period{min-height:64px;padding:4px;font-size:10px}.timetable-cell{min-height:64px;padding:6px}.cell-name{margin-bottom:2px;font-size:11px}.cell-room{font-size:9px}.ai-input-row{flex-direction:column;align-items:stretch}.ai-input-actions{flex-direction:row;justify-content:flex-end;gap:8px}.ai-input-actions>button{flex:1;max-width:80px}.ai-input-actions>button:last-child{max-width:none}.fab.fab-ai{bottom:calc(72px + env(safe-area-inset-bottom,0px));width:54px;height:54px;font-size:24px;right:16px}}@media (width>=641px){.timetable{grid-template-columns:60px repeat(6,1fr)}}@media (orientation:landscape) and (height<=500px){.sidebar{display:none}:root{--sidebar-w:0px}.main{padding:max(12px, env(safe-area-inset-top)) max(60px, env(safe-area-inset-right)) calc(56px + env(safe-area-inset-bottom,0px)) max(60px, env(safe-area-inset-left))}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);z-index:200;padding:4px max(0px, env(safe-area-inset-right)) max(4px, env(safe-area-inset-bottom)) max(0px, env(safe-area-inset-left));display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{min-height:44px;padding:4px 2px;font-size:18px;display:flex}.bottom-nav-label{font-size:9px}.page-header{margin-bottom:12px}.page-title{font-size:22px}.timetable{grid-template-columns:44px repeat(6,minmax(80px,1fr))}.modal{max-height:92vh;overflow-y:auto}}.home-hero{isolation:isolate;border-radius:22px;margin:-8px -8px 20px;padding:22px 22px 18px;position:relative;overflow:hidden}.home-hero-meta{font-family:var(--font-mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase;font-size:10px}.home-hero-greeting{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);margin:6px 0 8px;font-size:32px;font-weight:800;line-height:1.1}.home-hero-greeting .accent{color:var(--emerald)}.home-hero-stats{color:var(--ink-2-token);flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.home-hero-stats .num{font-family:var(--font-mono);font-weight:700}@media (width<=640px){.home-hero{border-radius:18px;margin:-4px -4px 16px;padding:18px 16px 14px}.home-hero-greeting{font-size:26px}}@media (prefers-reduced-motion:reduce){.aurora .blob,.grad-text,.dot-live,.reveal{transition:none!important;animation:none!important}}
