:root{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#101c34;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{min-height:100vh;margin:0;padding:65px 18px;display:flex;justify-content:center;align-items:center}.shell{width:min(100%,550px);padding:38px;background:#fff;border:1px solid #e2e8f0;border-radius:29px;box-shadow:0 17px 45px #24304b11}.brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:800;letter-spacing:-.3px}.brand-mark{display:flex;align-items:center;justify-content:center;width:46px;height:46px;background:#5364e8;color:#fff;border-radius:15px;font-size:35px;font-family:Georgia,serif;font-weight:400}h1{font-size:35px;line-height:1.15;letter-spacing:-1px;margin:39px 0 19px}h2{margin:30px 0 15px;font-size:19px}.desc{font-size:18px;color:#68748c;line-height:1.65;margin:0 0 29px}label{font-size:17px;font-weight:700;display:block;margin:20px 0 9px}input{display:block;width:100%;border-radius:15px;border:1px solid #cbd5e1;background:#fff;padding:17px;font:inherit;color:#101c34;outline:none}input:focus{border-color:#6077ff;box-shadow:0 0 0 4px #e9edff}button,.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;padding:15px 21px;border:0;border-radius:14px;background:#4768ed;color:#fff;font:700 16px system-ui,-apple-system,sans-serif;cursor:pointer;text-decoration:none;min-height:52px;margin-top:18px}button:hover,.btn:hover{background:#3656d9}.btn.secondary,.ghost{background:#eef1fb;color:#354675}.ghost:hover,.btn.secondary:hover{background:#dfe5ff}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.actions form{margin:0}.actions form button{margin-top:18px}.hint{font-size:13px;line-height:1.6;color:#7c8598}.alert,.notice{padding:13px 15px;border-radius:12px;font-size:14px;line-height:1.5}.alert{background:#fff0f0;color:#ac2632}.notice{background:#eef9ef;color:#24663a}.bottom-link{border-top:1px solid #e5e8ef;margin-top:32px;padding-top:24px;color:#66748f;font-size:15px}a{color:#3954ba}.inline{margin-top:9px}.linkbutton{padding:0;margin:8px 0 0;min-height:auto;border:0;background:transparent!important;color:#3954ba;font-size:14px;font-weight:500}.profile{display:grid;gap:10px}.profile>div{padding:15px;border:1px solid #e1e6ef;border-radius:13px}.profile b{display:block;font-size:12px;color:#66748f;margin-bottom:5px}.profile span{font-size:16px;overflow-wrap:anywhere}.services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.services a{display:flex;justify-content:space-between;text-decoration:none;gap:10px;padding:15px;border:1px solid #d8deeb;border-radius:13px;font-weight:650;color:#243b79}.services a:hover{background:#f3f6ff}footer{border-top:1px solid #e4e9f1;margin-top:30px;padding-top:22px;display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;color:#8692a8;font-size:12px}footer a{color:#68748c;text-decoration:none}@media(max-width:600px){body{padding:16px;align-items:flex-start}.shell{padding:23px;border-radius:23px}h1{font-size:29px;margin-top:29px}.desc{font-size:16px}.services{grid-template-columns:1fr}}

footer a:hover{text-decoration:underline;color:#3954ba}

/* TaskWeb brand / legal v0.2.5 */
.brand-symbol{width:46px;height:46px;object-fit:contain;display:block;flex:none}
.legal-check{display:flex;align-items:flex-start;gap:10px;margin:18px 0 6px;color:#35425c;font-size:14px;line-height:1.55;font-weight:400}
.legal-check input{display:block;width:19px;height:19px;padding:0;margin:2px 0 0;accent-color:#173b73;flex:none;box-shadow:none}
.legal-check span{min-width:0}.legal-check a{font-weight:650}
.legal-page{line-height:1.7;font-size:15px;color:#334155}.legal-page h2{margin:23px 0 8px}.legal-page p{margin:8px 0 13px}.legal-page ul{padding-left:22px}

/* Superadmin v0.3.0 */
.adm-nav{display:flex;flex-wrap:wrap;gap:9px;border-bottom:1px solid #e2e8f0;padding-bottom:18px}.adm-nav a{border:1px solid #d8e0eb;border-radius:9px;padding:9px;text-decoration:none;font-size:13px}.adm-nav form{margin:0}.adm-nav .adm-small{min-height:35px;margin:0;padding:8px 11px;font-size:13px;background:#e8eef9;color:#253656}.adm-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.adm-stats section{border:1px solid #dce4f0;border-radius:12px;padding:16px}.adm-stats small{display:block;color:#64748b}.adm-stats b{display:block;font-size:26px}.adm-scroll{max-width:100%;overflow-x:auto}.adm-table{width:100%;border-collapse:collapse;margin-top:18px;font-size:13px}.adm-table th,.adm-table td{padding:9px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}.adm-secret{padding:16px;border:1px solid #64748b;border-radius:12px;font:700 17px ui-monospace,monospace;letter-spacing:.05em;overflow-wrap:anywhere}.adm-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.adm-tabs a{font-size:13px;text-decoration:none;border:1px solid #cbd5e1;padding:7px 10px;border-radius:9px}.adm-tabs a.selected{background:#132e58;color:#fff}.adm-toggle{display:flex;align-items:center;gap:10px}.adm-toggle input{width:auto;margin:0}.adm-stats,.adm-scroll{margin-bottom:20px}@media(min-width:900px){body:has(.adm-nav) .shell{width:min(100%,980px)}}

/* TOTP enrolment: locally rendered QR image with a quiet zone, white background and manual fallback. */
.adm-totp-enrol{margin-top:18px}.adm-qr-panel{width:fit-content;max-width:100%;margin:0 auto 12px;padding:16px;background:#fff;border:1px solid #d9e1ef;border-radius:15px;text-align:center}.adm-qr-panel canvas{display:none;width:232px;height:auto;max-width:100%;aspect-ratio:1;image-rendering:pixelated}.adm-qr-panel.qr-ready canvas{display:block}.adm-qr-panel.qr-ready .adm-qr-fallback{display:none}.adm-qr-fallback{margin:5px;max-width:230px;font-size:13px;color:#53637d}.adm-totp-enrol>.hint{text-align:center;margin-top:10px}@media(max-width:600px){.adm-qr-panel{padding:10px}.adm-qr-panel canvas{width:210px}}

/* TaskWeb v0.3.4: HTML + CSS banner code editor */
.adm-banner-editor{display:block;width:100%;min-height:310px;resize:vertical;border:1px solid #cbd5e1;border-radius:14px;padding:16px;background:#fbfcff;color:#14223a;font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:2;white-space:pre;overflow:auto}.adm-banner-editor:focus{outline:none;border-color:#4768ed;box-shadow:0 0 0 4px #e9edff}.adm-toggle{margin:19px 0}


/* Auth 0.3.5 — full-width administrative workplace. Login/register remain centered. */
body.adm-screen{display:block;padding:0;min-height:100vh;background:#f3f6fb;color:#10213e}
.adm-screen .adm-shell{width:min(1480px,calc(100% - 42px));max-width:none;margin:24px auto 40px;padding:28px 34px 36px;border-radius:23px;box-shadow:0 14px 40px rgba(21,37,67,.055)}
.adm-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:20px;border-bottom:1px solid #e4e9f2}
.adm-logo{display:flex;align-items:center;gap:11px;color:#101c34;font-size:19px;font-weight:850;text-decoration:none}.adm-logo small{display:block;font-size:12px;font-weight:500;color:#75829a;letter-spacing:.03em;margin-top:2px}.adm-private-tag{border:1px solid #dce6f3;border-radius:50px;padding:9px 13px;background:#f6f8ff;color:#41557a;font-size:12px}
.adm-heading h1{margin:26px 0 8px;font-size:32px;letter-spacing:-.6px}.adm-heading .desc{margin:0 0 23px;font-size:15px;line-height:1.55}
.adm-nav{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:23px;padding-bottom:18px}.adm-nav-items{display:flex;flex-wrap:wrap;gap:8px}.adm-nav a,.adm-nav .adm-small{display:inline-flex;align-items:center;min-height:40px;padding:10px 14px;font-size:14px;border-radius:11px;color:#32476b;font-weight:600}.adm-nav a:hover{background:#f0f4fb}.adm-nav a.active,.adm-nav a[aria-current=page]{color:white;background:#142a55;border-color:#142a55}.adm-nav .adm-small{background:#edf1f8;margin:0}.adm-nav .adm-small:hover{background:#dce6f5}
.adm-screen .adm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.adm-screen .adm-stats section{padding:21px;border-radius:15px;background:#fbfcff}.adm-screen .adm-stats small{font-size:13px;line-height:1.4}.adm-screen .adm-stats b{font-size:34px;margin-top:9px}.adm-screen .adm-tabs{margin:6px 0 20px}.adm-screen .adm-tabs a{padding:10px 14px;font-weight:650}.adm-screen .adm-tabs a.selected{background:#142a55;color:#fff;border-color:#142a55}
.adm-screen label{font-size:14px}.adm-screen textarea,.adm-screen input:not([type=checkbox]){font-size:15px;max-width:100%;padding:12px 15px}.adm-screen .adm-banner-editor{width:100%;max-width:none;font-size:13px;min-height:285px}.adm-screen .adm-table{font-size:14px}.adm-screen .adm-table th{background:#f5f7fb;font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:#52617c}.adm-screen .adm-table td{padding:13px 11px}.adm-screen .adm-table th{padding:12px 11px}
.adm-banner-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;font-size:13px;color:#52617c;border-radius:12px;background:#f3f6fc;padding:13px 16px}.adm-banner-meta a{margin-left:auto;font-weight:650}
.adm-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.adm-section-head h2{margin:0 0 14px}.adm-section-head span{font-size:13px;color:#77849b}
.adm-preview{padding:18px;border:1px solid #e0e6f0;border-radius:15px;margin:24px 0 5px}.adm-preview-controls{display:flex;gap:6px}.adm-preview-controls button{margin:0;padding:9px 12px;min-height:38px;border:1px solid #dce3f0;background:#fff;color:#283d67;font-size:13px}.adm-preview-controls button.adm-view-selected{background:#142a55;color:#fff}.adm-preview-window{width:100%;height:56px;background:#202846;border-radius:10px;overflow:hidden;margin-top:9px;transition:width .2s ease}.adm-preview-window iframe{display:block;width:100%;height:100%;border:0}.adm-preview-window.mobile{width:min(350px,100%);height:100px;margin-left:auto;margin-right:auto}
.adm-chart{border:1px solid #e2e7f0;border-radius:15px;padding:20px;margin:20px 0}.adm-bars{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));height:170px;gap:6px;align-items:end}.adm-bar-col{height:100%;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:end}.adm-bar-col b{font-size:11px}.adm-bar-col progress{writing-mode:vertical-lr;direction:rtl;appearance:none;-webkit-appearance:none;inline-size:15px;block-size:100%;border:0;border-radius:4px;overflow:hidden}.adm-bar-col progress::-webkit-progress-bar{background:#e9eff8}.adm-bar-col progress::-webkit-progress-value{background:#355bd3}.adm-bar-col progress::-moz-progress-bar{background:#355bd3}.adm-bar-col small{font-size:10px;color:#72829e}
.adm-search{display:flex;align-items:center;gap:10px;max-width:750px}.adm-search input{margin:0}.adm-search button{margin:0;min-height:46px}
.adm-mail-compose,.adm-confirm{max-width:1100px}.adm-mail-compose textarea{width:100%;min-height:160px;resize:vertical;padding:14px;border:1px solid #cbd5e1;border-radius:14px;font:inherit}.adm-pick-all{display:flex;align-items:center;gap:8px;font-size:13px!important;margin:0!important}.adm-pick-all input,.adm-recipient input{width:18px;height:18px;margin:0;accent-color:#243d91}.adm-recipient{display:flex!important;align-items:center;gap:12px;max-width:800px;padding:10px 12px;border-bottom:1px solid #eef1f6;margin:0!important;font-weight:550!important}.adm-recipient small{margin-left:9px;color:#6c7b92;font-weight:450}.adm-confirm{padding:23px;background:#f7f9ff;border:1px solid #dce6fa;border-radius:15px}.adm-confirm pre{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.55 system-ui;padding:15px;border:1px solid #e3e9f6;background:white;border-radius:10px}.adm-confirm form{display:inline-block;margin-right:12px}.adm-mail-history{margin-top:25px;border-top:1px solid #e2e8f0;padding-top:10px}.adm-screen button:disabled{opacity:.5;cursor:not-allowed}
.mail-settings{margin:21px 0;padding:15px;border:1px solid #e1e6ef;border-radius:12px}.mail-settings h2{margin:0 0 7px}.mail-settings .legal-check{margin:8px 0}
/* v0.3.15: no permanently selected service; hover and keyboard focus only. */
.services a:hover{background:#f3f6ff;border-color:#cdd7f4}
.services a:focus-visible{background:#f3f6ff;border-color:#cdd7f4;outline:2px solid #6077ff;outline-offset:2px}
.services a span[aria-hidden]{color:#62738d;font-size:19px;line-height:1}
@media(max-width:720px){.adm-screen .adm-shell{width:100%;margin:0;padding:16px;border:0;border-radius:0}.adm-topbar{align-items:flex-start}.adm-private-tag{font-size:10px}.adm-heading h1{font-size:26px}.adm-nav{align-items:start}.adm-nav-items{gap:6px}.adm-nav a,.adm-nav .adm-small{font-size:12px;padding:8px;min-height:35px}.adm-screen .adm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-screen .adm-stats b{font-size:26px}.adm-banner-meta a{margin-left:0}.adm-bars{gap:2px}.adm-bar-col progress{inline-size:11px}.adm-search button{padding:8px}.adm-preview-window.mobile{max-width:100%}}

/* v0.3.6 Account access management */
.adm-access-form{margin:0;white-space:nowrap}
.adm-access-toggle{border:1px solid #c8d4e4;border-radius:9px;padding:8px 12px;font-weight:700;cursor:pointer;font-size:12px;min-width:145px}
.adm-access-on{color:#1f513a;background:#eaf7f0}
.adm-access-off{color:#7d2430;background:#fff0f1}
.adm-access-toggle:focus-visible{outline:3px solid #6f8eee;outline-offset:2px}


/* v0.3.7: compact user table and unambiguous access-control button states */
.adm-screen .adm-users-wrap{overflow-x:visible;max-width:100%}
.adm-screen .adm-users-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;margin-top:15px}
.adm-screen .adm-users-table th,.adm-screen .adm-users-table td{padding:11px 9px;vertical-align:middle;white-space:normal;line-height:1.45}
.adm-screen .adm-users-table th:nth-child(1){width:25%}
.adm-screen .adm-users-table th:nth-child(2){width:12%}
.adm-screen .adm-users-table th:nth-child(3){width:13%}
.adm-screen .adm-users-table th:nth-child(4){width:10%}
.adm-screen .adm-users-table th:nth-child(5){width:10%}
.adm-screen .adm-users-table th:nth-child(6){width:13%}
.adm-screen .adm-users-table th:nth-child(7){width:17%}
.adm-users-email{display:block;overflow-wrap:anywhere;font-weight:650;color:#1b2a47}
.adm-users-login{display:block;margin-top:4px;font-size:11px;color:#7a879d;overflow-wrap:anywhere}
.adm-users-date span{display:block;white-space:nowrap;font-size:12px}
.adm-users-date small{display:block;color:#75829a;white-space:nowrap;font-size:11px;margin-top:3px}
.adm-status-pill{display:inline-block;font-size:12px;font-weight:700;padding:5px 8px;border-radius:99px;white-space:nowrap}
.adm-status-active{color:#216448;background:#e7f5ed}
.adm-status-blocked{color:#ad3043;background:#fcebee}
.adm-screen .adm-users-action{padding-right:6px}
.adm-screen .adm-access-form{margin:0}
.adm-screen .adm-users-table .adm-access-toggle{display:inline-flex;margin:0;width:100%;min-width:0;min-height:36px;padding:8px 7px;border:1px solid transparent;border-radius:10px;align-items:center;justify-content:center;white-space:nowrap;font-size:12px;font-weight:750;transition:background .12s ease,color .12s ease,border-color .12s ease}
.adm-screen .adm-users-table .adm-access-toggle.adm-access-on{background:#fff0f2;color:#ad3043;border-color:#f2cfd4}
.adm-screen .adm-users-table .adm-access-toggle.adm-access-on:hover{background:#af3041;color:#fff;border-color:#af3041}
.adm-screen .adm-users-table .adm-access-toggle.adm-access-off{background:#eaf7ef;color:#216448;border-color:#c7e7d5}
.adm-screen .adm-users-table .adm-access-toggle.adm-access-off:hover{background:#20734e;color:#fff;border-color:#20734e}
.adm-screen .adm-users-table .adm-access-toggle:focus-visible{outline:3px solid #779cf2;outline-offset:2px}
@media(max-width:1000px){
 .adm-screen .adm-users-table{border-collapse:separate;border-spacing:0 13px}
 .adm-screen .adm-users-table thead{display:none}
 .adm-screen .adm-users-table tbody{display:block}
 .adm-screen .adm-users-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #dce5f0;border-radius:14px;padding:12px;gap:7px 16px;background:#fff}
 .adm-screen .adm-users-table tbody td{display:block;border:0;padding:6px 4px;min-width:0;overflow-wrap:anywhere}
 .adm-screen .adm-users-table tbody td::before{content:attr(data-label);display:block;color:#738098;font-size:11px;font-weight:650;margin-bottom:4px}
 .adm-screen .adm-users-table tbody td.adm-account-cell,.adm-screen .adm-users-table tbody td.adm-users-action{grid-column:1/-1}
 .adm-screen .adm-users-table .adm-access-toggle{width:auto;min-width:170px}
}
@media(max-width:480px){.adm-screen .adm-users-table tbody tr{grid-template-columns:1fr}}

/* v0.3.8 — login-only compact admin card. Keep /admin/* workplaces wide. */
body.adm-screen.adm-auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 16px}
body.adm-screen.adm-auth-screen .adm-shell{width:min(100%,520px);max-width:520px;margin:0;padding:34px;border:1px solid #e2e8f0;border-radius:24px;box-shadow:0 17px 45px #24304b11}
.adm-auth-screen .adm-topbar{flex-wrap:wrap;gap:12px}
.adm-auth-screen .adm-heading h1{font-size:30px;line-height:1.2;letter-spacing:-.5px;margin-top:30px}
.adm-auth-screen .adm-heading .desc{font-size:15px;line-height:1.6;margin-bottom:24px}
.adm-auth-screen .adm-private-tag{font-size:11px;padding:7px 10px}
@media(max-width:600px){body.adm-screen.adm-auth-screen{align-items:flex-start;padding:16px}body.adm-screen.adm-auth-screen .adm-shell{width:100%;max-width:520px;padding:23px;border-radius:22px}.adm-auth-screen .adm-heading h1{font-size:26px}}
