:root{--color-bg:#fff;--color-surface:#f7f7f8;--color-border:#e2e2e6;--color-text:#1a1a1e;--color-text-muted:#6b6b74;--color-accent:#3452e1;--color-accent-hover:#2b44c2;--color-accent-contrast:#fff;--color-danger:#b3261e;--color-danger-bg:#fdecea;--radius-sm:6px;--radius-md:10px;--shadow-sm:0 1px 2px #1010140f;--shadow-md:0 8px 24px #1010141f;--font-sans:system-ui, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#121214;--color-surface:#1b1b1f;--color-border:#2d2d33;--color-text:#e7e7ea;--color-text-muted:#9a9aa2;--color-accent:#7288ff;--color-accent-hover:#8c9dff;--color-accent-contrast:#0c0c10;--color-danger:#ff8583;--color-danger-bg:#ff6b6b24;--shadow-sm:0 1px 2px #0006;--shadow-md:0 8px 24px #00000080}}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:15px}h1,h2,h3{color:var(--color-text);margin:0;font-weight:600}p{margin:0}a{color:var(--color-accent)}button{font-family:inherit}.button{border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:15px;font-weight:500;text-decoration:none;transition:background-color .15s;display:inline-flex}.button:hover{background:var(--color-accent-hover)}.button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.button:disabled{opacity:.55;cursor:not-allowed}.button:disabled:hover{background:var(--color-accent)}.button-secondary{color:var(--color-accent);border-color:var(--color-border);background:0 0}.button-secondary:hover{background:var(--color-bg)}.button-danger{background:var(--color-danger);color:var(--color-bg)}.button-danger:hover{background:var(--color-danger);filter:brightness(.92)}.input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);width:100%;color:var(--color-text);font:inherit;padding:10px 12px}.input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.error-text{color:var(--color-danger);background:var(--color-danger-bg);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px}.app-layout{flex-direction:column;min-height:100%;display:flex}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-header-inner{align-items:center;gap:24px;max-width:960px;margin:0 auto;padding:12px 24px;display:flex}.app-brand{color:var(--color-text);font-size:16px;font-weight:600;text-decoration:none}.app-nav{flex:1;gap:4px;display:flex}.app-nav-link{border-radius:var(--radius-sm);color:var(--color-text-muted);padding:6px 10px;font-size:14px;font-weight:500;text-decoration:none}.app-nav-link:hover{color:var(--color-text);background:var(--color-bg)}.app-nav-link.active{color:var(--color-accent);background:var(--color-bg)}.app-user{align-items:center;gap:12px;display:flex}.app-user-name{color:var(--color-text-muted);font-size:14px}.app-logout{padding:6px 12px;font-size:14px}.app-header-message{max-width:960px;margin:0 auto;padding:0 24px 12px}.app-main{flex:1}@media (width<=560px){.app-header-inner{gap:12px}.app-user-name{display:none}}.login-page{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login-card{text-align:center;flex-direction:column;gap:16px;width:100%;max-width:360px;padding:32px;display:flex}.login-card h1{font-size:22px}.login-subtitle{color:var(--color-text-muted);font-size:14px}.login-form{text-align:left;flex-direction:column;gap:8px;display:flex}.login-label{font-size:14px;font-weight:500}.login-form .button{margin-top:4px}.login-divider{color:var(--color-text-muted);align-items:center;gap:12px;font-size:13px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.calendar-form{flex-direction:column;gap:16px;display:flex}.calendar-form-title{font-size:17px}.calendar-field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.calendar-field-label{padding:0;font-size:14px;font-weight:500}.calendar-field-hint{color:var(--color-text-muted);font-size:13px}.calendar-choices{flex-direction:column;gap:6px;display:flex}.calendar-choice{overflow-wrap:anywhere;align-items:center;gap:8px;min-width:0;font-size:14px;display:flex}.calendar-form-actions{flex-wrap:wrap;gap:8px;display:flex}.calendar-list-page{flex-direction:column;gap:20px;max-width:760px;margin:0 auto;padding:40px 24px;display:flex}.calendar-list-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.calendar-list-intro,.calendar-list-empty{color:var(--color-text-muted)}.calendar-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.calendar-card{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.calendar-card-title{flex-direction:column;gap:4px;min-width:0;display:flex}.calendar-card-title h2{overflow-wrap:anywhere;font-size:16px}.calendar-card-title a{color:var(--color-text);text-decoration:none}.calendar-card-title a:hover{color:var(--color-accent);text-decoration:underline}.calendar-card-meta{color:var(--color-text-muted);font-size:13px}.calendar-actions{flex-wrap:wrap;gap:8px;display:flex}.calendar-actions .button{padding:6px 12px;font-size:14px}.calendar-confirm{flex-direction:column;gap:10px;font-size:14px;display:flex}.calendar-form-card{padding:20px}.calendar-access{border-top:1px solid var(--color-border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.calendar-access-title{font-size:14px}.calendar-access-hint{color:var(--color-text-muted);font-size:13px}.calendar-access-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.calendar-access-list li{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.calendar-access-list .button{flex-shrink:0;padding:4px 10px;font-size:13px}.calendar-access-form{flex-direction:column;gap:6px;display:flex}.calendar-access-label{font-size:14px;font-weight:500}.calendar-access-row{flex-wrap:wrap;gap:8px;display:flex}.calendar-access-row .input{flex:200px;width:auto}.modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:420px;box-shadow:var(--shadow-md);padding:24px}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.modal-header h2{font-size:18px}.modal-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:4px;font-size:20px;line-height:1}.modal-close:hover{color:var(--color-text)}.modal-body{flex-direction:column;gap:12px;margin:0;display:flex}.modal-row{flex-direction:column;gap:2px;display:flex}.modal-row dt{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:12px}.modal-row dd{margin:0;font-size:15px}.source-badge{border:1px solid var(--color-border);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}.calendar-page{--fc-border-color:var(--color-border);--fc-button-bg-color:var(--color-surface);--fc-button-border-color:var(--color-border);--fc-button-text-color:var(--color-text);--fc-button-hover-bg-color:var(--color-border);--fc-button-active-bg-color:var(--color-accent);--fc-today-bg-color:var(--color-surface);--fc-page-bg-color:transparent;flex-direction:column;gap:20px;max-width:960px;margin:0 auto;padding:32px 24px;display:flex}.calendar-page-back{color:var(--color-text-muted);align-self:flex-start;font-size:14px;text-decoration:none}.calendar-page-back:hover{color:var(--color-accent)}.source-form{flex-direction:column;gap:16px;display:flex}.source-form-title{font-size:17px}.source-field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.source-field-label{padding:0;font-size:14px;font-weight:500}.source-field-hint{color:var(--color-text-muted);font-size:13px}.source-field-warning{color:var(--color-text);font-weight:500}.source-choices{flex-wrap:wrap;gap:6px 18px;display:flex}.source-choice{align-items:center;gap:8px;font-size:14px;display:inline-flex}.source-color-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;width:52px;height:34px;padding:2px}.source-form-actions{flex-wrap:wrap;gap:8px;display:flex}.sources-page{flex-direction:column;gap:20px;max-width:760px;margin:0 auto;padding:40px 24px;display:flex}.sources-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.sources-intro,.sources-empty{color:var(--color-text-muted)}.sources-notice{border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-surface);padding:10px 14px;font-size:14px}.source-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.source-card{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.source-card-header{align-items:flex-start;gap:12px;display:flex}.source-color{border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:5px}.source-card-title{flex-direction:column;gap:4px;min-width:0;display:flex}.source-card-title h2{overflow-wrap:anywhere;font-size:16px}.source-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:2px 14px;font-size:13px;display:flex}.source-owner{color:var(--color-text-muted);font-size:13px}.source-actions{flex-wrap:wrap;gap:8px;display:flex}.source-actions .button{padding:6px 12px;font-size:14px}.source-confirm{flex-direction:column;gap:10px;font-size:14px;display:flex}.source-sync-result{color:var(--color-text-muted);font-size:14px}.source-form-card{padding:20px}.copyable-value{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);align-items:center;gap:10px;padding:8px 10px;display:flex}.copyable-value-label{color:var(--color-text-muted);flex-shrink:0;font-size:12px;font-weight:600}.copyable-value-text{overflow-wrap:anywhere;flex:auto;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.copyable-value .button{flex-shrink:0;padding:4px 10px;font-size:13px}.tokens-page{flex-direction:column;gap:20px;max-width:760px;margin:0 auto;padding:40px 24px;display:flex}.tokens-intro{color:var(--color-text-muted)}.tokens-section{flex-direction:column;gap:14px;padding:18px;display:flex}.tokens-section h2{font-size:16px}.tokens-section-description,.tokens-empty,.tokens-form-hint{color:var(--color-text-muted);font-size:13px}.tokens-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tokens-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.tokens-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.tokens-row-label{overflow-wrap:anywhere;font-size:14px;font-weight:500}.tokens-row-meta{color:var(--color-text-muted);font-size:13px}.tokens-row .button{flex-shrink:0;padding:4px 10px;font-size:13px}.tokens-form{flex-direction:column;gap:6px;display:flex}.tokens-form-label{font-size:14px;font-weight:500}.tokens-form-row{flex-wrap:wrap;gap:8px;display:flex}.tokens-form-row .input{flex:200px;width:auto}.tokens-issued{border-left:3px solid var(--color-accent);flex-direction:column;gap:12px;padding:18px;display:flex}.tokens-issued-title{font-size:16px}.tokens-issued-warning{font-size:14px;font-weight:500}.tokens-issued-hint{color:var(--color-text-muted);font-size:13px}.tokens-feed-links{flex-direction:column;gap:14px;display:flex}.tokens-feed-calendar{flex-direction:column;gap:6px;display:flex}.tokens-feed-calendar-name{font-size:14px}.user-form{flex-direction:column;gap:16px;display:flex}.user-form-title{font-size:17px}.user-field{flex-direction:column;gap:6px;min-width:0;display:flex}.user-field-label{font-size:14px;font-weight:500}.user-field-hint{color:var(--color-text-muted);font-size:13px}.user-form-actions{flex-wrap:wrap;gap:8px;display:flex}.users-page{flex-direction:column;gap:20px;max-width:760px;margin:0 auto;padding:40px 24px;display:flex}.users-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.users-intro{color:var(--color-text-muted)}.users-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.users-form-card{flex-direction:column;gap:14px;padding:20px;display:flex}.users-self-warning{border-radius:var(--radius-sm);background:var(--color-danger-bg);color:var(--color-danger);padding:10px 14px;font-size:14px;font-weight:500}.user-card{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.user-card-title{flex-direction:column;gap:4px;min-width:0;display:flex}.user-card-title h2{overflow-wrap:anywhere;font-size:16px}.user-card-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:2px 14px;font-size:13px;display:flex}.user-actions{flex-wrap:wrap;gap:8px;display:flex}.user-actions .button{padding:6px 12px;font-size:14px}.user-confirm{flex-direction:column;gap:10px;font-size:14px;display:flex}.users-issued{border-left:3px solid var(--color-accent);flex-direction:column;gap:12px;padding:18px;display:flex}.users-issued-title{font-size:16px}.users-issued-warning{font-size:14px;font-weight:500}.users-issued-hint{color:var(--color-text-muted);font-size:13px}.user-identities{border-top:1px solid var(--color-border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.user-identities-title{font-size:14px}.user-identities-hint{color:var(--color-text-muted);font-size:13px}.user-identities-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.user-identities-list li{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.user-identities-list .button{flex-shrink:0;padding:4px 10px;font-size:13px}.user-identities-form{flex-direction:column;gap:6px;display:flex}.user-identities-row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.user-identities-field{flex-direction:column;flex:160px;gap:4px;min-width:0;display:flex}.user-identities-label{font-size:13px;font-weight:500}
