:root{--accent:#e8590c;--accent-dark:#c2410c;--text:#111;--muted:#5c5c5c;--line:#d4d4d4;--bg:#fff;--soft:#f4f4f5;--ok:#15803d;--ok-soft:#dcfce7;--warn:#a16207;--warn-soft:#fef3c7;--danger:#b91c1c;--danger-soft:#fee2e2;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.35}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3{margin:0}h1{text-overflow:ellipsis;white-space:nowrap;font-size:1.15rem;overflow:hidden}h2{margin:1.2rem 0 .5rem;font-size:1.1rem}a{color:var(--accent-dark)}.bar{z-index:5;padding:calc(.5rem + env(safe-area-inset-top)) .75rem .5rem;background:var(--accent);color:#fff;align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.bar h2{margin:0}.bar .icon-button{color:#fff}.page{max-width:40rem;margin:0 auto;padding:.75rem 1rem 1.5rem}.page.with-tabs{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.banner{background:var(--soft);text-align:center;margin:0;padding:.4rem 1rem;font-size:.9rem}.banner.error{background:var(--danger-soft)}.grow{flex:1;min-width:0}.row{align-items:center;gap:.6rem;display:flex}.row.wrap{flex-wrap:wrap}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger)}.block{text-align:center;width:100%;margin:.75rem 0;display:block}.button{border:1px solid var(--line);background:var(--bg);min-height:2.75rem;color:var(--text);font:inherit;cursor:pointer;border-radius:.5rem;padding:.55rem 1rem;text-decoration:none;display:inline-block}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.button.danger{color:var(--danger);border-color:var(--danger)}.button:disabled{opacity:.45;cursor:default}.icon-button{min-width:2.75rem;min-height:2.75rem;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;font-size:1.6rem;line-height:1;text-decoration:none;display:inline-grid}.plain{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.field{margin:.75rem 0;display:block}.field>span{color:var(--muted);margin-bottom:.25rem;font-size:.85rem;display:block}input,select{font:inherit}.field input:not([type=checkbox]),.field select,.search{border:1px solid var(--line);background:var(--bg);width:100%;min-height:2.75rem;color:var(--text);border-radius:.5rem;padding:.5rem .65rem}.search{margin-bottom:.5rem;font-size:1.1rem}.two{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.two .field{margin:.25rem 0}fieldset{border:0;min-width:0;margin:0;padding:0}.card{border:1px solid var(--line);border-radius:.6rem;margin:.75rem 0;padding:.5rem .9rem}.card p{margin:.35rem 0}.list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.list>li{border-bottom:1px solid var(--line)}.link{color:inherit;padding:.75rem .25rem;text-decoration:none}.link .grow>*{display:block}.competitor{padding:.35rem 0}.competitor.checked{background:var(--ok-soft)}.competitor .check{cursor:pointer;place-items:center;min-width:3rem;min-height:3rem;display:grid}.competitor .check input{width:1.75rem;height:1.75rem;accent-color:var(--ok)}.competitor .grow{padding:.25rem .5rem .25rem 0}.competitor .grow>span{display:block}.competitor .name{font-size:1.05rem}.tag{background:var(--soft);border-radius:.3rem;margin:.15rem .3rem 0 0;padding:.05rem .45rem;font-size:.8rem;display:inline-block!important}.tag.warn{background:var(--warn-soft);color:var(--warn)}.minute-nav{align-items:center;gap:.75rem;display:flex}.minute-nav .button{min-width:3.5rem;min-height:3.5rem;font-size:1.2rem}.minute{text-align:center;flex:1}.minute .time{font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:700}.course{color:var(--accent-dark);margin:1rem 0 .25rem;font-size:1rem}.tabs{z-index:5;padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line);grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabs a{min-height:3.25rem;color:var(--muted);text-align:center;place-items:center;padding:0 .15rem;font-size:.78rem;line-height:1.1;text-decoration:none;display:grid}.tabs a.active{color:var(--accent-dark);box-shadow:inset 0 3px 0 var(--accent);font-weight:700}.clock{white-space:nowrap;flex-direction:column;align-items:flex-end;line-height:1.1;display:flex}.clock time{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.clock-label{letter-spacing:.06em;text-transform:uppercase;opacity:.9;font-size:.68rem;font-weight:600}.badge{font:inherit;cursor:pointer;color:var(--text);white-space:nowrap;background:#fff;border:0;border-radius:1rem;padding:.3rem .7rem;font-size:.8rem}.badge.synced{background:var(--ok-soft);color:var(--ok)}.badge.pending,.badge.offline{background:var(--warn-soft);color:var(--warn)}.badge.error,.badge.deleted{background:var(--danger-soft);color:var(--danger)}.table{border-collapse:collapse;width:100%;font-size:.92rem}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:.55rem .35rem}.table th{color:var(--muted);font-size:.8rem;font-weight:600}.table tbody tr{cursor:pointer}.table td:nth-child(n+3){font-variant-numeric:tabular-nums;white-space:nowrap}dialog.sheet{background:var(--bg);width:100%;max-width:40rem;height:100%;max-height:100%;color:var(--text);border:0;margin:0 auto;padding:0;overflow-y:auto}dialog.sheet::backdrop{background:#0006}dialog.sheet form{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}dialog.sheet form>:not(header){margin-left:1rem;margin-right:1rem}dialog.sheet form>.block{width:calc(100% - 2rem)}@media (width>=42rem){dialog.sheet{border-radius:.75rem;height:auto;max-height:90vh;margin-top:5vh}}.toggle{min-height:2.75rem;margin:.75rem 0;font-weight:600}.toggle input{width:1.6rem;height:1.6rem;accent-color:var(--ok)}.time-value{font-variant-numeric:tabular-nums;font-size:1.5rem}.slots{border:1px solid var(--line);border-radius:.5rem;grid-template-columns:repeat(auto-fill,minmax(5.2rem,1fr));gap:.4rem;max-height:16rem;padding:.25rem;display:grid;overflow-y:auto}.slot{border:1px solid var(--line);background:var(--bg);min-height:2.75rem;font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;color:var(--text);border-radius:.4rem}.slot.past{color:var(--muted);background:var(--soft)}.slot.half{border-color:var(--warn);background:var(--warn-soft)}.slot[data-next]{border:2px solid var(--accent);font-weight:700}.slot.selected{background:var(--accent);color:#fff}
