:root{--text:#3f3d45;--text-h:#08060d;--text-muted:#7a7783;--bg:#f7f6f9;--surface:#fff;--border:#e5e4e7;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-bg:#7c3aed14;--accent-border:#7c3aed59;--danger:#d92d20;--danger-bg:#d92d2014;--success:#12805c;--success-bg:#12805c14;--shadow:#100f140f 0 1px 2px, #100f140f 0 8px 24px -8px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:15px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#d3d1d8;--text-h:#f5f4f7;--text-muted:#918e99;--bg:#121218;--surface:#1a1a22;--border:#2e2d38;--accent:#a78bfa;--accent-hover:#c4b5fd;--accent-bg:#a78bfa1f;--accent-border:#a78bfa66;--danger:#f97066;--danger-bg:#f970661f;--success:#32d296;--success-bg:#32d2961f;--shadow:#0006 0 1px 2px, #00000080 0 8px 24px -8px}}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;min-height:100svh;display:flex}a{color:var(--accent)}h1,h2,h3{font-family:var(--sans);color:var(--text-h);margin:0 0 16px;font-weight:600}h1{letter-spacing:-.3px;font-size:28px}h2{font-size:18px}h3{margin-bottom:8px;font-size:15px}p{margin:0}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:16px;padding:10px 24px;display:flex;position:sticky;top:0}.app-header-brand{color:var(--text-h);align-items:center;gap:10px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.app-header-brand img{border-radius:6px}.app-header-school-picker{align-items:center;gap:6px;display:flex}.app-header-school-picker select{padding:4px 6px;font-size:13px}.app-header-school-picker button{padding:4px 10px;font-size:13px}.app-header-back{color:var(--accent);white-space:nowrap;font-size:14px;font-weight:600;text-decoration:none}.app-header-back:hover{color:var(--accent-hover)}.app-header-spacer{flex:1}.app-header-user{color:var(--text-muted);font-size:14px}.app-header-signout{border:1px solid var(--border);color:var(--text);background:0 0}.app-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:24px}.not-found{text-align:center;color:var(--text-muted);padding:48px 0}input,select,textarea,button{font:inherit;color:var(--text)}input[type=text],input[type=tel],input[type=email],input[type=number],input[type=time],input[type=file],select,textarea{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-height:38px;padding:8px 12px}input:focus,select:focus,textarea:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg);outline:none}label{align-items:center;gap:6px;font-size:14px;display:flex}button{background:var(--accent);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:8px 16px;font-weight:500;transition:background-color .15s}button:hover:not(:disabled){background:var(--accent-hover)}.admin-add-button{margin-bottom:16px}button:disabled{opacity:.55;cursor:not-allowed}.language-picker{min-height:34px;padding:4px 8px}section{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;margin-bottom:20px;padding:20px}.admin-form,.pairing-otp,.admin-import,.admin-holiday-refresh{flex-direction:column;align-items:flex-start;gap:10px;max-width:420px;display:flex}.photo-upload{flex-direction:column;align-items:flex-start;gap:6px;width:100%;display:flex}.photo-upload-dropzone{border:1px dashed var(--border);text-align:center;width:100px;height:100px;color:var(--text-muted);cursor:text;border-radius:8px;justify-content:center;align-items:center;padding:8px;font-size:12px;display:flex}.photo-upload-dropzone:focus{outline:2px solid var(--accent);outline-offset:2px}.photo-upload-preview{object-fit:cover;border-radius:6px;width:100%;height:100%}.person-photo-thumb{object-fit:cover;vertical-align:middle;border-radius:50%;width:28px;height:28px;margin-inline-end:6px}.admin-form input,.admin-form select,.pairing-otp input,.admin-import input[type=file]{width:100%}.school-logo-thumb{object-fit:cover;vertical-align:middle;border-radius:4px;width:20px;height:20px;margin-inline-end:6px}.schools-list li{margin-bottom:12px}.school-row{align-items:center;gap:4px;display:flex}.admin-form-actions{gap:8px;display:flex}.search-box{width:100%;max-width:320px;margin-bottom:10px}.modal-overlay{z-index:100;background:#100f1473;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;width:100%;max-width:480px;max-height:80vh;padding:20px;overflow-y:auto}.row-actions{gap:6px;margin-inline-start:auto;display:inline-flex}.row-actions button{padding:4px 8px;font-size:13px}table .row-actions{margin-inline-start:0}.school-map{border:1px solid var(--border);border-radius:8px;width:100%;max-width:400px;height:200px;margin-top:6px}.error{color:var(--danger);background:var(--danger-bg);border-radius:8px;padding:8px 12px}.status{color:var(--success);background:var(--success-bg);border-radius:8px;padding:8px 12px}.hint,.empty{color:var(--text-muted);font-size:14px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:start;border-bottom:1px solid var(--border);padding:10px 12px}th{color:var(--text-muted);font-size:13px;font-weight:600}tbody tr:hover{background:var(--accent-bg)}.import-review-table{white-space:nowrap;display:block;overflow-x:auto}.import-review-table input{min-width:120px}.home-nav{flex-wrap:wrap;gap:10px;display:flex}.home-nav a{border:1px solid var(--border);background:var(--surface);color:var(--text-h);box-shadow:var(--shadow);border-radius:10px;align-items:center;padding:10px 18px;font-weight:500;text-decoration:none;display:inline-flex}.home-nav a:hover{border-color:var(--accent-border);color:var(--accent)}.segmented{border:1px solid var(--border);background:var(--bg);border-radius:10px;gap:4px;width:fit-content;padding:4px;display:flex}.segmented button{color:var(--text);background:0 0}.segmented button:disabled{background:var(--surface);color:var(--accent);opacity:1;box-shadow:var(--shadow)}.pairing-page{flex-direction:column;gap:20px;max-width:720px;margin:40px auto;padding:0 24px;display:flex}.pairing-header{justify-content:space-between;align-items:center;display:flex}.pairing-header h1{margin:0}.pairing-brand{align-items:center;gap:10px;display:flex}.pairing-brand img{border-radius:6px}.pairing-qr,.pairing-otp{text-align:center;align-items:center}.pairing-qr svg{margin:12px 0}.schedule-tabs{border:1px solid var(--border);background:var(--bg);border-radius:10px;gap:4px;width:fit-content;margin-bottom:16px;padding:4px;display:flex}.schedule-tabs button{color:var(--text);background:0 0}.schedule-tabs button:disabled{background:var(--surface);color:var(--accent);opacity:1;box-shadow:var(--shadow)}.schedule-day-view-toggle{margin-bottom:16px}.schedule-week{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.schedule-day{border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:12px}.schedule-day-holiday{border-color:var(--accent-border);background:var(--accent-bg)}.schedule-holiday-badge{color:var(--accent);margin:0 0 8px;font-size:12px;font-weight:600}.schedule-day ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.schedule-day li{border-bottom:1px dashed var(--border);padding-bottom:8px;font-size:13px}.schedule-day li:last-child{border-bottom:none;padding-bottom:0}@media (width<=720px){.app-header{flex-wrap:wrap}.app-main,section{padding:16px}}.legal-page{max-width:720px;margin:0 auto;padding:24px}.legal-page-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;display:flex}.legal-page-brand{color:var(--text-h);align-items:center;gap:8px;font-weight:700;text-decoration:none;display:flex}.legal-page article h2{margin-top:28px}.legal-page-footer{border-top:1px solid var(--border);margin-top:32px;padding-top:16px}
