.ws{--blue:#123c69;--blue2:#16487d;--green:#2f9e73;--green2:#247c5b;--bg:#f4f7fb;--card:#fff;--line:#e3eaf2;--mut:#5f6b72;--text:#22303c;--amber:#b8860b;--amberbg:#fff7e3;--shadow:0 14px 38px #123c691f;background:var(--bg);min-height:100vh;color:var(--text);grid-template-columns:248px 1fr;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;display:grid}.ws-side{background:var(--blue);color:#fff;padding:22px 16px}.ws-brand{letter-spacing:.2px;margin-bottom:4px;font-size:18px;font-weight:800}.ws-brand span{color:#8fd0b6}.ws-brand-logo{width:auto;max-width:100%;height:34px;display:block}.ws-who{color:#b9cbe0;margin-bottom:22px;font-size:12.5px}.ws-nav{flex-direction:column;gap:4px;display:flex}.ws-nav button{text-align:left;color:#d7e3f1;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:10px 12px;font-size:14.5px;font-weight:600}.ws-nav button:hover{color:#fff;background:#ffffff14}.ws-nav button.on{color:var(--blue);background:#fff}.ws-nav-link{text-align:left;color:#d7e3f1;border-radius:9px;margin-top:4px;padding:10px 12px;font-size:14.5px;font-weight:600;text-decoration:none;display:block}.ws-nav-link:hover{color:#fff;background:#ffffff14}.ws-save{color:#9fd9c0;margin-top:20px;font-size:12px;font-weight:600}.ws-signout{color:#d7e3f1;cursor:pointer;background:0 0;border:1px solid #ffffff47;border-radius:8px;margin-top:18px;padding:7px 14px;font-size:13px;font-weight:600}.ws-signout:hover{color:#fff;background:#ffffff1a}.ws-loading{color:#5f6b72;justify-content:center;align-items:center;min-height:100vh;font-family:system-ui,sans-serif;font-size:15px;display:flex}.ws-back{color:#b9cbe0;margin-bottom:14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.ws-back:hover{color:#fff;text-decoration:underline}.ws-main{max-width:980px;padding:30px 34px 60px}.ws-h1{color:var(--blue);margin:0 0 6px;font-size:26px;font-weight:800}.ws-sub{color:var(--mut);margin:0 0 24px;font-size:15px;line-height:1.5}.q{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:16px 18px}.q-label{font-size:15.5px;font-weight:700}.q-hint{color:var(--mut);margin-top:3px;font-size:13px;font-weight:500;display:block}.opts{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.opt{border:1.5px solid var(--line);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:999px;padding:7px 15px;font-size:13.5px;font-weight:600}.opt:hover{border-color:#b9cee6}.opt.sel{background:var(--blue);border-color:var(--blue);color:#fff}.opt.sel.no{background:var(--mut);border-color:var(--mut)}.opts-states .opt{text-align:center;min-width:44px}.q select{border:1.5px solid var(--line);background:#fff;border-radius:9px;min-width:220px;margin-top:12px;padding:9px 12px;font-size:14px}.q-text{border:1.5px solid var(--line);background:#fff;border-radius:9px;width:100%;max-width:420px;margin-top:12px;padding:10px 12px;font-size:14px;display:block}.q-text:focus{border-color:var(--blue);outline:none}.why-toggle{color:var(--green2);cursor:pointer;margin-top:10px;font-size:12.5px;font-weight:700;display:inline-block}.why{border-left:3px solid var(--green);color:#34424c;background:#f0f7f4;border-radius:0 8px 8px 0;margin-top:8px;padding:10px 13px;font-size:13px;line-height:1.55}.ws-cta{background:linear-gradient(to top, var(--bg) 70%, transparent);margin-top:20px;padding:16px 0 6px;position:sticky;bottom:0}.btn{background:var(--green);color:#fff;cursor:pointer;box-shadow:var(--shadow);border:0;border-radius:10px;padding:13px 26px;font-size:15px;font-weight:800}.btn:hover{background:var(--green2)}.btn.ghost{color:var(--blue);border:1.5px solid var(--line);box-shadow:none;background:#fff}.tiles{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.tile b{color:var(--blue);font-size:30px;font-weight:800;line-height:1;display:block}.tile span{color:var(--mut);margin-top:6px;font-size:12.5px;font-weight:600;display:block}.tile.accent b{color:var(--green2)}.roles-overlay{z-index:50;background:#121e2a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.roles-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;padding:24px 26px;box-shadow:0 24px 60px #0000004d}.roles-head{justify-content:space-between;align-items:center;display:flex}.roles-head h2{color:var(--blue);margin:0;font-size:20px;font-weight:800}.roles-x{color:var(--mut);cursor:pointer;background:0 0;border:0;font-size:18px}.roles-note{color:var(--mut);margin:8px 0 18px;font-size:13.5px;line-height:1.5}.roles-list{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.roles-empty{color:var(--mut);font-size:14px}.roles-row{background:var(--bg);border:1px solid var(--line);border-radius:9px;align-items:center;gap:10px;padding:10px 13px;display:flex}.roles-name{color:var(--text);font-size:14.5px;font-weight:700}.roles-kind{color:var(--green2);background:#eaf6f0;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.roles-del{color:var(--mut);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:14px}.roles-del:hover{color:#e5534b}.roles-add{flex-wrap:wrap;gap:8px;display:flex}.roles-input{border:1.5px solid var(--line);border-radius:8px;flex:1;min-width:140px;padding:10px 12px;font-size:14px}.roles-input:focus{border-color:var(--blue);outline:none}.roles-add .btn{box-shadow:none;padding:10px 20px}.roles-add .btn:disabled{opacity:.5;cursor:default}.filters{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.filter{border:1.5px solid var(--line);color:var(--mut);cursor:pointer;background:#fff;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700}.filter:hover{border-color:#b9cee6}.filter.on{background:var(--blue);border-color:var(--blue);color:#fff!important}.filter-empty{color:var(--mut);padding:8px 0 20px;font-size:14px}.groupby{align-items:center;gap:8px;margin-bottom:16px;display:flex}.groupby-label{color:var(--mut);font-size:12.5px;font-weight:700}.groupby-btn{border:1.5px solid var(--line);color:var(--mut);cursor:pointer;background:#fff;border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:700}.groupby-btn.on{background:var(--green);border-color:var(--green);color:#fff}.na-block{margin-top:8px}.na-toggle{color:var(--mut);cursor:pointer;background:0 0;border:0;padding:10px 0;font-size:14px;font-weight:700}.na-toggle:hover{color:var(--blue)}.grp{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden}.grp-head{background:var(--blue);color:#fff;justify-content:space-between;align-items:center;padding:13px 18px;display:flex}.grp-head strong{font-size:15.5px}.grp-head .cnt{color:#bcd2e8;font-size:12.5px;font-weight:600}.grp-body{padding:6px 18px 12px}.item{border-bottom:1px solid #eef3f7;align-items:center;gap:14px;padding:11px 0;display:flex}.item:last-child{border-bottom:0}.item.isna{opacity:.5}.item-status,.item-owner{border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;flex-shrink:0;padding:7px 10px;font-size:12.5px;font-weight:700}.item-status:focus,.item-owner:focus{outline:none}.item-owner{min-width:92px}.item-bringback{border:1.5px solid var(--line);color:var(--blue);cursor:pointer;background:#fff;border-radius:8px;flex-shrink:0;padding:6px 12px;font-size:12.5px;font-weight:700}.item-bringback:hover{border-color:var(--blue);background:#eef3fb}.dot{color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:24px;font-size:13px;font-weight:800;display:inline-flex}.item-name{color:var(--text);font-size:14.5px;font-weight:700;text-decoration:none}.item-name:hover{color:var(--blue);text-decoration:underline}.item-rule{color:var(--mut);margin-top:2px;font-size:12.5px}.item-main{flex:1}.quote-row{background:#f0f8f5;border:1px solid #cfe6dc;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:12px 16px;display:flex}.quote-row .qr b{color:var(--blue)}.quote-row .qr span{color:var(--mut);font-size:13px;display:block}.quote-btn{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:9px 18px;font-size:13.5px;font-weight:800;text-decoration:none}.quote-btn:hover:not(:disabled){background:var(--blue2)}.quote-btn:disabled{background:var(--green2);cursor:default}.pyrow{background:var(--card);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;margin-bottom:22px;padding:14px 18px;display:flex}.pyrow label{color:var(--blue);font-size:14px;font-weight:700}.pyrow select{border:1.5px solid var(--line);background:#fff;border-radius:8px;padding:8px 11px;font-size:14px}.cal-h{color:var(--blue);text-transform:uppercase;letter-spacing:.05em;margin:26px 0 12px;font-size:15px;font-weight:800}.cal-note{color:var(--mut);max-width:640px;margin:-6px 0 14px;font-size:13px;line-height:1.5}.pyrow-note{color:var(--mut);font-size:12.5px}.cal-month{margin-bottom:16px}.cal-month-h{color:var(--green2);border-bottom:2px solid #e5efe9;margin-bottom:6px;padding-bottom:5px;font-size:14px;font-weight:800}.cal-item{background:var(--card);border:1px solid var(--line);border-radius:10px;align-items:center;gap:16px;margin-bottom:8px;padding:12px 16px;display:flex}.cal-date{width:64px;color:var(--blue);flex-shrink:0;font-size:13.5px;font-weight:800}.rem-del{color:var(--mut);cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0;padding:4px 8px;font-size:14px}.rem-del:hover{color:var(--red,#e5534b);background:#fdeceb}.rem-add{background:var(--card);border:1px dashed var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:14px;display:flex}.rem-add .rem-input{border:1.5px solid var(--line);border-radius:8px;flex:1;min-width:220px;padding:10px 12px;font-size:14px}.rem-add .rem-input:focus{border-color:var(--blue);outline:none}.rem-add select{border:1.5px solid var(--line);background:#fff;border-radius:8px;padding:9px 10px;font-size:14px}.rem-add .btn{box-shadow:none;padding:10px 20px}.rem-add .btn:disabled{opacity:.5;cursor:default}.roles-name-input{min-width:0;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:6px;flex:1;padding:4px 6px;font-weight:600}.roles-name-input::placeholder{color:#9aa7b2;font-style:italic;font-weight:400}.roles-name-input:hover{border-color:#dbe3ea}.roles-name-input:focus{border-color:var(--blue,#123c69);background:#fff;outline:none}
