.hub,.pin-screen{--danger:#dc2626;font-family:var(--font-sans),system-ui,sans-serif;font-size:15px}@media (prefers-color-scheme:dark){.hub,.pin-screen{--danger:#f87171}}.hub button,.hub input,.pin-screen button{font:inherit;color:inherit}.hub button,.pin-screen button{cursor:pointer;min-height:40px;padding:6px 14px;border:1.5px solid var(--ink);background:var(--card)}.hub a:focus-visible,.hub button:focus-visible,.pin-screen button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hub button:disabled,.pin-screen button:disabled{opacity:.4;cursor:default}.hub button.primary,.passkey-offer button.primary,.pin-screen button.primary{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}.muted{color:var(--mut)}.small{font-size:.86rem}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}a.link,button.link{min-height:0;border:0;padding:0;background:none;color:var(--accent);text-decoration:underline;text-underline-offset:2px}.pin-screen{min-height:100vh;min-height:100dvh;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom))}.pin-box,.pin-screen{display:flex;align-items:center}.pin-box{width:100%;max-width:300px;flex-direction:column;text-align:center}.pin-box .mark{margin-bottom:16px}.pin-box h1{font-family:var(--font-mono),monospace;font-size:17px;font-weight:600}.pin-box h1 em{font-style:normal;color:var(--accent)}.pin-title{font-size:1rem;font-weight:600;margin:10px 0 4px}.pin-dots{display:flex;justify-content:center;gap:12px;margin:20px 0 8px}.pin-dots i{width:14px;height:14px;border:1.5px solid var(--ink)}.pin-dots i.filled{background:var(--accent);border-color:var(--accent)}.pin-dots.shake{animation:shake .3s}@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}@media (prefers-reduced-motion:reduce){.pin-dots.shake{animation:none}}.pin-message{min-height:1.5em;color:var(--danger);font-size:.88rem;margin:0 0 12px}.pin-pad{width:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1px;gap:1px;border:1.5px solid var(--ink);background:var(--hair)}.pin-pad>*{background:var(--card)}.pin-screen .pin-pad button{height:64px;border:0;font-family:var(--font-mono),monospace;font-size:1.5rem}.pin-screen .pin-pad button:active{background:var(--ink);color:var(--paper)}.passkey-btn{margin-top:14px;width:100%}.pin-screen button.switch-profile{margin-top:18px;font-size:13px}.projects-link{margin-top:22px}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;background:var(--ink);color:var(--paper);font-family:var(--font-mono),monospace;font-size:13px;font-weight:600}.profile-list{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:18px}.pin-screen .profile-list button{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;text-align:left}.profile-list button:hover .avatar{background:var(--accent)}.passkey-offer{position:fixed;left:50%;bottom:calc(max(16px, env(safe-area-inset-bottom)) + var(--tabbar-h, 0px));z-index:40;width:min(420px,calc(100% - 32px));transform:translateX(-50%);padding:14px 16px;background:var(--card);border:1.5px solid var(--ink);box-shadow:4px 4px 0 var(--accent);font-family:var(--font-sans),system-ui,sans-serif}.passkey-offer p{margin:0 0 10px}.passkey-offer button{min-height:40px;padding:6px 14px;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);font:inherit;cursor:pointer}.hub .plate-row{flex-wrap:nowrap}.hub-actions{display:flex;gap:8px;margin-left:auto}.hub button.adm-btn{width:52px;min-height:48px;padding:0;gap:2px;font-family:var(--font-mono),monospace;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink2);background:transparent}.hub button.adm-btn:hover{background:var(--ink);color:var(--paper)}.hub button.profile-chip{display:inline-flex;align-items:center;gap:8px;min-height:0;padding:0;border:0;background:none;font-size:14px}.hub-main{gap:14px;padding-top:18px;padding-bottom:28px}.hub-card,.hub-main{display:flex;flex-direction:column}.hub-card{gap:6px;padding:16px;background:var(--card);border:1.5px solid var(--ink)}.hub-card h2{font-size:1.05rem}.hub-card.hero{background:var(--ink);color:var(--paper);border-color:var(--ink)}.hub-card.hero .lab{color:var(--accent)}.big{font-size:2rem;line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.big,.mid{font-family:var(--font-mono),monospace;font-weight:600}.mid{font-size:1.2rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mid .per{font-family:var(--font-sans),system-ui,sans-serif;font-size:.8rem;font-weight:400;color:var(--mut)}.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px}.app-card{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px 16px;background:var(--card);border:1.5px solid var(--ink);transition:box-shadow .15s ease,transform .15s ease}.app-card:hover{box-shadow:4px 4px 0 var(--accent);transform:translate(-2px,-2px)}@media (prefers-reduced-motion:reduce){.app-card,.app-card:hover{transition:none;transform:none}}.app-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.app-mark{display:grid;place-items:center;width:30px;height:30px;background:var(--ink);color:var(--paper);font-weight:700;font-size:12px}.app-head .go,.app-mark{font-family:var(--font-mono),monospace}.app-head .go{margin-left:auto;color:var(--accent)}.app-card .stamp{margin-top:6px}ul.due{list-style:none}ul.due li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:10px;gap:10px;align-items:baseline;padding:6px 0;border-top:1px solid var(--hair)}ul.due li:first-child{border-top:0}ul.due b{font-family:var(--font-mono),monospace}.profile-panel .pin-change{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.profile-panel label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--ink2)}.profile-panel input{width:9em;min-height:40px;padding:6px 10px;border:1.5px solid var(--mut);background:var(--card);font-family:var(--font-mono),monospace;letter-spacing:.2em}.hub-foot{display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}.hub-foot a{color:var(--accent)}