:root{color-scheme:light dark;--paper:#f4f5f2;--surface:#ffffff;--line:#c9cec8;--ink:#1b2422;--soft:#55615e;--brand:#24574f;--red:#a32a22;--red-soft:#fbe6e3;--green-soft:#dcefe7}@media (prefers-color-scheme:dark){:root{--paper:#141a19;--surface:#1d2523;--line:#38443f;--ink:#e8ece9;--soft:#a9b5b0;--brand:#8fd0bf;--red:#ffb1a8;--red-soft:#41211e;--green-soft:#1e3b32}}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,sans-serif}body,h1,h2,p{margin:0}a{color:var(--brand)}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.page{max-width:880px;margin:0 auto;padding:24px 16px 64px;display:grid;grid-gap:28px;gap:28px}.top{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px}.top h1{font-size:1.6rem;margin-right:auto}.muted{color:var(--soft)}.signin{min-height:100dvh;display:grid;place-content:center;justify-items:center;grid-gap:12px;gap:12px;padding:16px}.google-button{min-height:44px}section{display:grid;grid-gap:10px;gap:10px}h2{font-size:1.15rem}button,input{font:inherit;color:inherit;min-height:44px;border-radius:6px}input{width:100%;padding:8px 10px;border:1px solid var(--soft);background:var(--surface)}button{padding:0 16px;border:1px solid var(--brand);background:none;color:var(--brand);font-weight:600;cursor:pointer}button.danger{border-color:var(--red);color:var(--red)}button.quiet{border:0;text-decoration:underline;font-weight:400}.app-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.app-list a{display:grid;grid-template-columns:1fr auto;grid-gap:0 16px;gap:0 16px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:inherit;text-decoration:none}.app-list .state{grid-column:2;grid-row:1/3;align-self:center;color:var(--soft)}.app-list .state.on{color:var(--brand);font-weight:600}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:8px;gap:8px;margin:0}.stats div{padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.stats dt{color:var(--soft);font-size:.9rem}.stats dd{margin:0;font-size:1.5rem;font-weight:600}.row{grid-template-columns:auto 1fr auto;align-items:center;grid-gap:8px}.grant,.row{display:grid;gap:8px}.grant{grid-template-columns:2fr 1fr 2fr auto;align-items:end;grid-gap:8px}.grant label{display:grid;grid-gap:2px;gap:2px;font-size:.92rem}.user{display:grid;grid-gap:8px;gap:8px;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}td,th{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}.error{background:var(--red-soft);color:var(--red)}.done,.error{padding:8px 12px;border-radius:6px}.done{background:var(--green-soft)}.notice{padding:8px 12px;border:1px solid var(--line);border-radius:6px;color:var(--soft)}@media (max-width:640px){.grant{grid-template-columns:1fr}}