@import"https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@700&display=swap";:root{font-family:Zen Kaku Gothic New,system-ui,sans-serif;font-weight:700;color:#101112;background:#f1f5f9;--green: #00fa27;--black: #000;--white: #fff;--muted: #7e8085;--line: #d9dee7;--soft: #f7f9fc;--danger: #e4250e;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-height:100%;background:#f1f5f9}body{min-height:100%;margin:0}button,input,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#000;color:#fff}.auth-panel{width:min(720px,100%);padding:28px;border:1px solid #222426;border-radius:14px;background:#fff;color:#101112}.auth-heading{margin-bottom:18px}.auth-heading h1,.auth-panel h1{margin:0;color:#000;font-size:clamp(38px,7vw,76px);line-height:.96;letter-spacing:-.05em}.auth-heading p{max-width:520px;margin:12px 0 0;color:#525459;font-size:14px;line-height:1.8}.auth-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:16px}.auth-tabs button{min-height:40px;border:1px solid var(--line);border-radius:20px;background:#fff;color:#525459;cursor:pointer}.auth-tabs button.active{border-color:#000;background:#000;color:var(--green)}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:6px;color:#222426;font-size:12px}.register-form{grid-template-columns:repeat(2,minmax(0,1fr))}.register-form .auth-submit,.auth-message,.auth-note{grid-column:1 / -1}.auth-submit{width:fit-content;min-width:160px;margin-top:4px}.auth-note,.auth-message{margin:0;font-size:13px;line-height:1.6}.auth-note{color:var(--muted)}.side-nav{position:sticky;top:0;height:100vh;padding:22px 18px;border-right:1px solid var(--line);background:var(--white)}.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;color:var(--green);background:var(--black);font-size:24px}.brand-title,.brand-subtitle{display:block}.brand-title{font-size:17px;line-height:1.1}.brand-subtitle{color:var(--muted);font-size:11px;line-height:1.4}.nav-list{display:grid;gap:6px}.nav-list a{padding:12px 13px;border:1px solid transparent;border-radius:10px;color:#222426;font-size:14px}.nav-list a:hover,.nav-list a.active{border-color:#000;background:#000;color:#fff}.main{min-width:0;padding:24px 28px 44px}.topbar,.grid,.toolbar,.list-page,.panel,.state-box,.document-grid{width:min(1180px,100%)}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 auto 22px}.topbar h1{margin:2px 0 0;font-size:clamp(32px,5vw,64px);line-height:1;letter-spacing:-.03em}.eyebrow{margin:0 0 5px;color:#00aa14;font-size:11px;line-height:1.2;letter-spacing:.04em}.topbar-actions,.toolbar,.attendance{display:flex;align-items:center;gap:8px}.topbar-actions{justify-content:flex-end;flex-wrap:wrap}.notification-control,.passkey-control,.user-control{display:flex;align-items:center;gap:8px}.user-control{min-height:36px;max-width:220px;flex-direction:column;align-items:flex-end;justify-content:center;gap:1px;padding:0 10px;border:1px solid var(--line);border-radius:18px;background:#fff}.user-name,.user-email{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-name{color:#000;font-size:12px}.user-email,.passkey-control span{color:var(--muted);font-size:11px}.passkey-control span{max-width:180px;line-height:1.4}.icon-button,.button{min-height:36px;border:1px solid #000;border-radius:18px;background:#000;color:#fff;cursor:pointer}.icon-button{width:38px;font-size:18px}.button{padding:0 16px;font-size:12px}.button.secondary{border-color:var(--line);background:#fff;color:#000}.notification-button.active{border-color:#000;background:#000;color:var(--green)}.button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}.sync-status{min-height:36px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid var(--line);border-radius:18px;background:var(--white);color:var(--muted);font-size:12px;white-space:nowrap}.notification-message{max-width:220px;color:var(--muted);font-size:12px;line-height:1.4}.grid{display:grid;margin:0 auto 16px;gap:16px}.grid.two{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}.grid.two.task-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel,.hero-panel,.state-box{border:1px solid var(--line);border-radius:12px;background:var(--white)}.panel{margin:0 auto 16px;padding:18px}.hero-panel{padding:22px;background:#000;color:#fff}.next-class-button{display:block;width:100%;border-color:#000;text-align:left;cursor:pointer}.next-class-button:hover{background:#101112}.hero-panel h2{margin:0;color:var(--green);font-size:clamp(30px,5vw,54px);line-height:1.03;letter-spacing:-.04em}.hero-panel.compact h2{font-size:clamp(48px,8vw,84px)}.large-meta{margin:14px 0 0;color:#fff;font-size:18px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{min-height:96px;display:flex;flex-direction:column;justify-content:space-between;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--white)}.metric-button{width:100%;color:inherit;text-align:left;cursor:pointer}.metric-button:hover{border-color:#000;background:#f7f9fc}.metric span,.meta,small{color:var(--muted);font-size:12px;line-height:1.4}.metric strong{font-size:38px;line-height:1}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.section-header h2,.detail-panel h2{margin:0;font-size:22px;line-height:1.25}.stack{display:grid;gap:8px}.list-item,.row-button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;text-align:left}.list-item strong,.row-button strong{display:block;overflow-wrap:anywhere}.list-item em,.badge-group em,.status-pill{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:12px;background:#eaffed;color:#007d11;font-size:11px;font-style:normal;white-space:nowrap}.toolbar{margin:0 auto 14px}input,select{min-height:38px;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:#101112;padding:0 12px}input{flex:1}.split-view{display:grid;grid-template-columns:minmax(260px,.42fr) minmax(0,.58fr);max-width:1180px;margin:0 auto;gap:16px}.list-page{margin:0 auto}.split-view .panel{margin:0}.list-panel{max-height:calc(100vh - 132px);overflow:auto}.row-button{cursor:pointer}.row-button.active,.row-button:hover{border-radius:10px;background:#f1f5f9}.badge-group{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.detail-panel{min-height:430px}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:14px}.pagination-status{min-width:88px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:12px}.inline-loader{width:14px;height:14px;border:2px solid #d9dee7;border-top-color:#000;border-radius:50%;animation:spin .8s linear infinite}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:20px;background:#0000006b}.detail-sheet{position:fixed;top:50%;left:50%;z-index:31;transform:translate(-50%,-50%);width:min(760px,100%);max-height:min(840px,calc(100vh - 40px));overflow:auto;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.weekday-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:12px}.weekday-tabs button{min-height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#525459;cursor:pointer}.weekday-tabs button.active{border-color:#000;background:#000;color:#fff}.timetable-list{display:grid;gap:8px}.timetable-row{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;align-items:center;min-height:62px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.timetable-button{width:100%;color:inherit;text-align:left;cursor:pointer}.timetable-button:hover{border-color:#000;background:#f7f9fc}.period-badge{display:grid;min-height:38px;place-items:center;border-radius:10px;background:#000;color:var(--green);font-size:14px}.timetable-row strong,.timetable-row small{display:block;overflow-wrap:anywhere}.sheet-header{position:sticky;top:-18px;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:-18px -18px 16px;padding:16px 18px 12px;border-bottom:1px solid var(--line);background:#fff}.sheet-header h2{margin:0;font-size:22px;line-height:1.25}.close-button{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:19px;background:#fff;color:#000;cursor:pointer;font-size:22px;line-height:1}.body-text{margin-top:16px;color:#222426;font-size:15px;line-height:1.8;white-space:pre-wrap}.notice{padding:12px;border:1px solid #b7f7c0;border-radius:10px;background:#effff1}.session{display:grid;gap:10px;padding:16px 0;border-top:1px solid var(--line)}.session h3{margin:0 0 4px;font-size:17px}.session p{margin:0;line-height:1.6}.file-list,.calendar-list,.document-grid{display:grid;gap:8px}.document-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto}.file-link{display:inline-flex;width:fit-content;max-width:100%;min-height:34px;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:17px;background:#fff;color:#000;font-size:13px;overflow-wrap:anywhere}.file-link.block{display:flex;width:100%;justify-content:space-between}.empty,.state-box{display:grid;min-height:120px;place-items:center;padding:18px;color:var(--muted);text-align:center}.state-box{margin:0 auto}.state-title{margin:8px 0 0;color:#101112;font-size:17px}.state-copy{margin:6px 0 12px;font-size:13px}.state-error{border-color:#f3b0a7}.loader{width:28px;height:28px;border:3px solid #e9eef3;border-top-color:#000;border-radius:50%;animation:spin .8s linear infinite}.success{color:#007d11}.errorText{color:var(--danger)}.toast{position:fixed;right:16px;bottom:16px;max-width:min(420px,calc(100vw - 32px));padding:12px 14px;border-radius:10px;background:#000;color:#fff;font-size:13px}.bottom-nav{display:none}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:820px){.auth-shell{align-items:start;padding:14px}.auth-panel{padding:18px;border-radius:10px}.auth-heading h1,.auth-panel h1{font-size:42px}.auth-tabs,.register-form{grid-template-columns:1fr}.auth-submit{width:100%}.app-shell{display:block;padding-bottom:calc(70px + env(safe-area-inset-bottom))}.side-nav{display:none}.main{padding:16px 14px 22px}.topbar{align-items:center;flex-direction:column;margin-bottom:16px}.topbar>div:first-child,.topbar-actions{width:100%}.topbar-actions{justify-content:flex-start}.topbar h1{font-size:38px}.sync-status{display:none}.notification-control,.passkey-control{align-items:flex-end;flex-direction:column;gap:4px}.user-control{max-width:100%;align-items:flex-start}.notification-message{max-width:148px;text-align:right}.grid.two,.split-view,.document-grid,.grid.two.task-summary-grid{grid-template-columns:1fr}.panel,.hero-panel{border-radius:10px;padding:15px}.metric-grid{grid-template-columns:repeat(4,minmax(70px,1fr));gap:6px;overflow-x:auto;padding-bottom:2px}.metric{min-width:78px;min-height:78px;padding:11px}.metric span{font-size:12px}.metric strong{font-size:28px}.schedule-extra{display:none}.toolbar{align-items:stretch}.toolbar select{width:96px}.list-panel{max-height:none}.detail-panel{min-height:280px}.detail-overlay{align-items:start;padding:10px 10px calc(78px + env(safe-area-inset-bottom))}.detail-sheet{width:100%;max-height:calc(100vh - 98px - env(safe-area-inset-bottom));border-radius:10px 10px 14px 14px;padding:15px}.sheet-header{top:-15px;margin:-15px -15px 14px;padding:14px 15px 10px}.attendance{align-items:stretch;flex-direction:column}.bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff5}.bottom-nav a{display:grid;min-height:44px;place-items:center;border-radius:10px;color:#525459;font-size:12px}.bottom-nav a.active{background:#000;color:#fff}}
