:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#f7f4ff;background:#141123;font-size:16px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% -10%,#38205a 0,transparent 36%),#141123;min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #60e5e0;outline-offset:3px}.shell{max-width:1280px;margin:auto;padding:0 24px 70px}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff16}.brand{display:flex;align-items:center;gap:12px;font-weight:850;font-size:1.2rem;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#a568ff;color:#171027;font-size:1.55rem}.brand-dot{color:#b980ff}.account{display:flex;align-items:center;gap:20px;color:#c9c1d9}.text-button{border:0;background:none;color:#c0a2ee;padding:8px}.heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:38px 0 30px}.eyebrow{color:#bc8aff;font-size:.75rem;letter-spacing:.16em;font-weight:800}h1{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.06em;margin:8px 0 4px;line-height:1.1}h2{letter-spacing:-.035em}.heading p,.auth-card p,.hint{color:#a9a1ba;margin:7px 0}.primary{background:#ad73ff;color:#1b102e;border:0;border-radius:13px;padding:13px 19px;font-weight:800;box-shadow:0 8px 30px #ad73ff22}.primary:hover{background:#c190ff}.outline{color:#e5d8f8;background:#292338;border:1px solid #524365;border-radius:11px;padding:10px 15px}.outline:hover{background:#383048}.toolbar{display:flex;align-items:center;gap:20px;margin-bottom:15px}.month-nav{display:flex;align-items:center;gap:10px}.month-nav h2{font-size:1.4rem;min-width:190px;text-align:center;margin:0;text-transform:capitalize}.month-nav button{border:1px solid #ffffff27;background:#2a243b;color:white;border-radius:10px;width:36px;height:36px;font-size:1.5rem;line-height:1}.legend{margin-left:auto;display:flex;gap:17px;color:#b9b1c8;font-size:.85rem}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.yes{background:#53d9b2}.maybe{background:#ffce72}.no{background:#ff7797}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#393146;border:1px solid #393146;border-radius:18px;overflow:hidden}.weekday{background:#241e33;color:#a9a0b8;padding:13px 15px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.day{min-height:130px;background:#211b30;border:0;color:#f6f0ff;text-align:left;padding:14px;display:flex;flex-direction:column;gap:10px}.day:hover,.day.selected{background:#322642}.day.today .day-number{background:#af78fa;color:#1b1028;border-radius:9px;padding:3px 8px;margin:-3px -8px}.day.empty{background:#1c1828;cursor:default}.day-number{font-weight:750;align-self:flex-start}.day-counts{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto}.count{font-size:.75rem;padding:5px 7px;border-radius:7px;font-weight:750}.count.yes{background:#1d5147;color:#8ff1d0}.count.maybe{background:#5a472e;color:#ffdf9b}.count.no{background:#5b3046;color:#ffafc5}.avatars{color:#a69aba;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hint{font-size:.82rem;margin:12px 0 36px}.day-panel{border:1px solid #423550;background:#211b30;border-radius:18px;padding:24px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-heading h2{margin:7px 0 20px;text-transform:capitalize}.entries{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.entry{border:1px solid #463955;background:#292237;border-radius:12px;padding:15px;min-height:90px}.entry-top{display:flex;align-items:center;gap:9px;font-weight:750}.badge{width:10px;height:10px;border-radius:50%;flex:none}.entry small{color:#b7adc6;font-weight:500;margin-left:auto}.entry p{color:#cbc2d7;margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.empty-note{color:#aa9fba}.auth-card{max-width:440px;margin:9vh auto 0;padding:32px;background:#241d34;border:1px solid #49395e;border-radius:22px;box-shadow:0 30px 100px #0004}.auth-card h1{font-size:2.3rem}.auth-card p{line-height:1.5}.auth-tabs{display:flex;border-bottom:1px solid #514460;margin:24px 0}.auth-tabs button{flex:1;background:none;color:#a99cba;border:0;padding:12px}.auth-tabs button.active{color:#d6b5ff;border-bottom:2px solid #b67dff}.auth-card label,dialog label{display:block;color:#d4ccdf;font-weight:650;font-size:.9rem;margin:15px 0}.auth-card input,dialog input[type=date],dialog textarea{display:block;width:100%;background:#171223;border:1px solid #564666;border-radius:10px;color:white;padding:12px;margin-top:7px;color-scheme:dark}.full{width:100%;margin-top:8px}.error{color:#ff9bb0!important;min-height:1em;font-size:.88rem}.optional{font-weight:400;color:#9f94b1}dialog{width:min(530px,calc(100% - 28px));border:1px solid #654d7f;border-radius:20px;background:#292039;color:white;padding:28px;box-shadow:0 25px 100px #000a}dialog::backdrop{background:#080610bc}.dialog-heading,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-heading h2{margin:5px 0}.close{background:none;border:0;color:#cbb9dd;font-size:2rem}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}fieldset{border:0;padding:0;margin:12px 0}legend{font-weight:650;font-size:.9rem}.status-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.status-options label{margin:8px 0}.status-options input{position:absolute;opacity:0}.status-options span{display:block;text-align:center;padding:11px 5px;background:#1b1727;border:1px solid #51435f;border-radius:9px;font-size:.84rem}.status-options input:checked+span{border-color:#c59dff;background:#49365d}.status-options input:focus-visible+span{outline:2px solid #60e5e0}.yes-choice{color:#82e7c9}.maybe-choice{color:#ffda92}.no-choice{color:#ff9db7}textarea{resize:vertical}.danger{background:none;border:0;color:#ff9db7;padding:10px 0}.dialog-actions .primary{margin-left:auto}@media(max-width:760px){.shell{padding:0 12px 50px}.topbar{height:68px}.heading{align-items:start;margin:28px 0 24px;flex-direction:column}.heading .primary{width:100%}.toolbar{flex-wrap:wrap;gap:10px}.legend{width:100%;margin:8px 0 2px;justify-content:space-between;gap:5px;font-size:.72rem}.weekday{text-align:center;padding:10px 2px;font-size:.64rem}.day{min-height:78px;padding:8px 5px;gap:5px}.day-number{font-size:.85rem}.day.today .day-number{padding:2px 5px;margin:-2px -5px}.count{font-size:.65rem;padding:3px 4px}.avatars{display:none}.entries{grid-template-columns:1fr}.day-panel{padding:18px}.panel-heading{align-items:start;flex-direction:column;margin-bottom:10px}.panel-heading h2{margin-bottom:0}.account{gap:8px;font-size:.85rem}}

[hidden]{display:none!important}
.controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:32px 0 22px}.view-toggle{display:flex;padding:4px;border:1px solid #574569;border-radius:13px;background:#241d34}.view-toggle button{border:0;background:transparent;color:#b9acc9;padding:9px 17px;border-radius:9px;font-weight:700}.view-toggle button.active{background:#a86df4;color:#1e1230}.toolbar{justify-content:space-between}.month-nav h1{font-size:clamp(1.35rem,2.6vw,2rem);min-width:260px;text-align:center;margin:0;text-transform:capitalize}.matrix-scroll{overflow-x:auto;border:1px solid #483854;border-radius:18px;background:#1e192b}.matrix{display:grid;width:max(100%,850px);gap:1px;background:#483854}.matrix.monthly{width:max(100%,2500px)}.matrix-corner,.matrix-head,.person-cell,.matrix-cell{min-height:72px;background:#211b30;padding:12px}.matrix-corner,.person-cell{position:sticky;left:0;z-index:2;background:#292138;font-weight:750}.matrix-corner,.matrix-head{min-height:54px;color:#bdb0d0;font-weight:750}.matrix-corner{z-index:3}.matrix-head{text-align:center;white-space:nowrap}.today-head{color:#d0a6ff}.person-cell{display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matrix-cell{border:0;color:#82758f;display:flex;align-items:center;justify-content:center;gap:7px;position:relative;cursor:pointer}.matrix-cell:hover{filter:brightness(1.3)}.cell-symbol{font-size:1.5rem;font-weight:800}.cell-text{font-size:.82rem}.status-yes{background:#1c453d;color:#8ef1d0}.status-maybe{background:#50402f;color:#ffe19c}.status-no{background:#502c3c;color:#ffabc2}.note-mark{position:absolute;right:5px;top:4px;font-size:.75rem}.request{display:flex;align-items:center;gap:10px;background:#2c243c;border-radius:12px;padding:12px;flex-wrap:wrap}.request strong{margin-right:auto}.request button{padding:9px 13px}#adminPanel{margin-top:30px}#detailNote{white-space:pre-wrap;overflow-wrap:anywhere;color:#d3c6df}@media(max-width:760px){.controls{margin:24px 0 18px;align-items:stretch;flex-direction:column}.month-nav h1{min-width:0;width:190px;font-size:1.3rem}.toolbar{gap:8px}.legend{order:3}.matrix{width:max(100%,850px)}.matrix.monthly{width:max(100%,2450px)}.matrix-corner,.person-cell{min-width:135px}.matrix-head,.matrix-cell{padding:8px}.hint{line-height:1.5}}

.matrix.monthly{width:max(100%,4700px)}.matrix-cell{min-height:104px;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;gap:3px}.matrix-cell .cell-symbol{font-size:1.1rem;line-height:1}.cell-text{font-size:.83rem;font-weight:800}.cell-note{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem;line-height:1.25;max-width:100%}.status-yes,.status-maybe,.status-no{border-left:3px solid currentColor}@media(max-width:760px){.matrix{width:max(100%,1250px)}.matrix.monthly{width:max(100%,4700px)}}
.brand-mark{font-family:ui-sans-serif,system-ui,sans-serif;font-size:1.3rem;letter-spacing:-.09em;font-weight:950;background:linear-gradient(145deg,#d77bff,#67e7e0);color:#1c112d;box-shadow:0 0 25px #a776ff66}.account{position:relative}.profile-trigger{display:flex;align-items:center;gap:9px;background:#2c233c;border:1px solid #604973;border-radius:999px;color:#f7f0ff;padding:5px 12px 5px 5px;font-weight:700}.profile-menu{position:absolute;top:calc(100% + 9px);right:0;z-index:20;min-width:190px;padding:6px;background:#2d223f;border:1px solid #765a91;border-radius:12px;box-shadow:0 14px 38px #0008}.profile-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#f5ebff;padding:11px 12px;border-radius:8px}.profile-menu button:hover{background:#47345d}.avatar{display:inline-flex;flex:none;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#a56af1,#4fc6cf);color:#1b122d;font-weight:900;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.small{width:30px;height:30px;font-size:.86rem}.avatar.large{width:74px;height:74px;font-size:1.8rem}.person-cell{gap:10px}.person-cell span:last-child{overflow:hidden;text-overflow:ellipsis}.today-head{background:#583678;color:#fff;box-shadow:inset 0 0 0 2px #d79cff,0 0 24px #bd71ff99;font-weight:900}.today-cell{box-shadow:inset 0 0 0 2px #ac6be8;background-color:#3c2b50}.today-cell.status-yes{background-color:#245d50}.today-cell.status-maybe{background-color:#735633}.today-cell.status-no{background-color:#75405a}.avatar-editor{display:flex;align-items:center;gap:18px;margin:18px 0}.avatar-editor>div{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.file-label{cursor:pointer;color:#d9b5ff!important;margin:0!important}.file-label input{max-width:240px;display:block;margin-top:7px;font-size:.8rem}.avatar-editor small,.password-section p{color:#ab9cba;font-size:.8rem}.password-section{border-top:1px solid #574265;margin-top:22px;padding-top:10px}.password-section h3{margin:8px 0 0}#profileDialog{max-height:90vh;overflow-y:auto}

.brand-image{width:44px;height:44px;object-fit:cover;object-position:center 13%;border-radius:12px;border:2px solid #ae72ef;box-shadow:0 0 17px #ac72ff66}.auth-mascot{display:block;width:82px;height:106px;object-fit:cover;object-position:center top;border-radius:13px;margin-bottom:20px;border:1px solid #6a5478}

.brand-image{width:58px;height:58px;object-fit:cover;object-position:center;border-radius:15px}.auth-mascot{width:112px;height:112px;object-fit:cover;object-position:center;border-radius:17px}.topbar{min-height:88px;height:auto;padding:12px 0}@media(max-width:760px){.brand-image{width:48px;height:48px}.brand{font-size:1rem}.topbar{min-height:70px}}
