:root{--indigo: #2A2A72;--blue: #009FFD;--orange: #FFA400;--ink: #232528;--bg: #EAF6FF;--card: #FFFFFF;--muted: #4E5257;--line: #D6E6F3;--soft: #F2F7FB;--warn-bg: #FFEDCC;--warn-ink: #6B4300;--warn-strong: #8F5A00;--radius: 18px;--head: "PT Sans", system-ui, sans-serif;--body: Rubik, system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-text-size-adjust:100%}body{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--indigo)}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.app{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative}.screen{flex:1;padding:24px 20px 120px;display:flex;flex-direction:column;gap:18px}.screen.no-nav{padding-bottom:32px}h1,h2,h3{font-family:var(--head);font-weight:700;margin:0;letter-spacing:-.01em}h1{font-size:34px;line-height:1.05}h2{font-size:20px}.eyebrow{font-size:14px;font-weight:500;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:13px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:10px}.grow{flex:1;min-width:0}.topbar{display:flex;align-items:center;gap:12px}.icon-btn{width:44px;height:44px;border-radius:22px;border:1px solid var(--line);background:var(--card);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none;color:var(--ink)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card.accent{background:var(--blue);border-color:var(--blue);color:var(--ink)}.card.warn{background:var(--warn-bg);border-color:var(--warn-bg);color:var(--ink)}.card.dashed{border-style:dashed;border-width:1.5px;border-color:#a9c3d9;background:transparent}.btn{min-height:52px;padding:0 18px;border-radius:16px;border:none;font-weight:600;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.btn.primary{background:var(--indigo);color:#fff}.btn.accent{background:var(--blue);color:var(--ink)}.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line)}.btn.dashed{background:transparent;color:var(--ink);border:1.5px dashed #A9C3D9}.btn.small{min-height:44px;font-size:14px;border-radius:12px;padding:0 14px}.btn.block{width:100%}.btn:disabled{opacity:.55;cursor:default}.chip{min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-size:14px;font-weight:600}.chip[aria-pressed=true]{background:var(--indigo);border-color:var(--indigo);color:#fff}.days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.day{height:64px;border-radius:14px;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.day small{font-size:12px;color:var(--muted);font-weight:500}.day b{font-size:17px}.day[aria-pressed=true]{background:var(--indigo);border-color:var(--indigo);color:#fff}.day[aria-pressed=true] small{color:#cdebff}.room-badge{background:var(--indigo);color:#fff;border-radius:10px;padding:6px 10px;font-weight:700;font-size:15px;white-space:nowrap}.tag{background:var(--soft);border-radius:8px;padding:4px 8px;font-size:12px;font-weight:500;color:#33363d}.tags{display:flex;flex-wrap:wrap;gap:6px}.warn-line{display:flex;align-items:center;gap:8px;background:var(--warn-bg);color:var(--warn-strong);border-radius:10px;padding:8px 10px;font-size:13px;font-weight:600}.status{border-radius:8px;padding:3px 8px;font-size:11px;font-weight:700;white-space:nowrap}.status.open{background:var(--orange);color:var(--ink)}.status.verifying{background:#e3e5ea;color:var(--ink)}.status.resolved{background:var(--soft);color:#33363d}.lesson{display:flex;gap:14px;text-decoration:none;color:inherit}.lesson .time{width:48px;flex-shrink:0;display:flex;flex-direction:column;gap:2px}.check{display:flex;align-items:center;gap:12px;min-height:36px;font-size:15px;font-weight:500;cursor:pointer}.check input{width:20px;height:20px;margin:0;accent-color:var(--indigo)}.check.done span{text-decoration:line-through;opacity:.65}.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #EEF3F8}.list-row:last-child{border-bottom:none}.dot{width:26px;height:26px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.dot.yes{background:var(--indigo)}.dot.no,.dot.unknown{background:#e3e8ee}.seg{display:inline-flex;background:#eef3f8;border-radius:12px;padding:3px}.seg button{min-height:40px;min-width:46px;padding:0 10px;border:none;border-radius:10px;background:transparent;font-size:13px;font-weight:600;color:#33363d}.seg button[aria-pressed=true]{background:var(--indigo);color:#fff}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:#33363d}.input{min-height:48px;border:1px solid var(--line);border-radius:14px;padding:0 14px;background:var(--card);font-size:16px;width:100%}textarea.input{padding:12px 14px;min-height:100px;resize:vertical}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}.photo-hero{position:relative;height:260px;background:#c9d6e2;overflow:hidden}.photo-hero img{width:100%;height:100%;object-fit:cover;display:block}.photo-hero .empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#33363d;font-weight:600;font-size:14px}.photo-hero .nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:22px;border:none;background:#ffffffe6;display:flex;align-items:center;justify-content:center}.photo-hero .count{position:absolute;right:16px;bottom:40px;background:#232528d9;color:#fff;border-radius:10px;padding:5px 10px;font-size:12px;font-weight:600}.sheet{margin-top:-28px;background:var(--bg);border-radius:28px 28px 0 0;position:relative}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.thumb{width:76px;height:76px;border-radius:12px;object-fit:cover;border:3px solid transparent;padding:0;background:#c9d6e2}.thumb[aria-pressed=true]{border-color:var(--indigo)}.nav-bar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:520px;height:calc(76px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-around;z-index:10}.nav-bar a{min-width:76px;height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;font-size:12px;color:var(--muted);font-weight:500}.nav-bar a.active{color:var(--ink);font-weight:700}.nav-bar a.scan{width:62px;min-width:62px;height:62px;border-radius:31px;background:var(--blue);margin-top:-26px;border:4px solid var(--bg);color:var(--ink)}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(96px + env(safe-area-inset-bottom));width:calc(100% - 40px);max-width:480px;background:var(--indigo);color:#fff;border-radius:14px;padding:14px 16px;font-size:14px;font-weight:600;box-shadow:0 8px 24px #23252840;z-index:30;display:flex;gap:10px;align-items:center}.toast.error{background:var(--warn-strong)}.success{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px 0}.success .badge{width:88px;height:88px;border-radius:44px;background:var(--blue);display:flex;align-items:center;justify-content:center}.camera{position:relative;background:var(--ink);border-radius:22px;overflow:hidden;aspect-ratio:3 / 4;display:flex;align-items:center;justify-content:center}.camera video{width:100%;height:100%;object-fit:cover}.camera .frame{position:absolute;width:64%;aspect-ratio:1;border:4px solid var(--blue);border-radius:22px;box-shadow:0 0 0 999px #00000059}.camera .msg{position:absolute;left:16px;right:16px;bottom:16px;color:#fff;text-align:center;font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.labels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.label-card{background:#fff;border:1px solid #999;border-radius:10px;padding:14px;display:flex;align-items:center;gap:12px;break-inside:avoid}.label-card img{width:96px;height:96px}.label-card b{font-family:var(--head);font-size:40px;line-height:1}@media print{body{background:#fff}.no-print{display:none!important}.screen{padding:0}.labels{grid-template-columns:repeat(3,minmax(0,1fr))}}
