@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{color-scheme:light;--bg:#f4f6f8;--surface:#fff;--ink:#1c2c3a;--muted:#667781;--line:#e3e9ed;--accent:#157669;--soft:#e8f3ef;--nav:#fff;--shadow:0 8px 30px #172d3b05}*{box-sizing:border-box}body{margin:0;font:16px/1.6 'DM Sans',sans-serif;background:var(--bg);color:var(--ink)}body.dark{color-scheme:dark;--bg:#131d24;--surface:#1d2932;--ink:#e8eef2;--muted:#a9b8c3;--line:#33434e;--accent:#79d6bb;--soft:#233e38;--nav:#19252e;--shadow:none}button,input,textarea,select{font:inherit}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #e7ad48;outline-offset:4px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:Manrope,sans-serif;line-height:1.35}h1{font-size:30px;font-weight:800;letter-spacing:-1px}h2{font-size:20px;font-weight:800}h3{font-size:18px;font-weight:750}p{color:var(--muted)}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;background:var(--nav);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:35px 21px;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 12px;font-family:Manrope;font-size:22px;font-weight:800;letter-spacing:-.8px}.brandmark{background:#157669;color:white;border-radius:12px;width:39px;height:42px;display:grid;place-items:center;font-size:25px}.brand-sub{margin:6px 0 42px 63px;color:var(--muted);font-size:12px;letter-spacing:1px;text-transform:uppercase}.nav-label{font-size:12px;letter-spacing:1.8px;font-weight:700;color:var(--muted);padding:0 16px;margin-bottom:14px}.nav-item{display:flex;align-items:center;gap:13px;border-radius:9px;padding:12px 15px;margin:5px 0;font-size:15px;font-weight:550}.nav-item:hover{background:var(--bg)}.nav-item.active{background:var(--soft);color:var(--accent);font-weight:700}.nav-bottom{margin-top:auto;padding-top:30px}.sidebar-note{border-top:1px solid var(--line);margin:20px 12px 0;padding-top:20px;font-size:12px;color:var(--muted);display:flex;gap:8px}.sidebar-note svg{width:16px}.shell{margin-left:248px}.topbar{height:100px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 42px;gap:20px}.crumb{color:var(--muted);font-size:14px}.crumb strong{color:var(--ink);font-weight:500}.top-right{display:flex;align-items:center;gap:24px}.clock{text-align:right;line-height:1.5}.clock strong{font-family:Manrope;font-size:23px;letter-spacing:.5px;font-variant-numeric:tabular-nums}.clock small{display:block;color:var(--muted);font-size:12px}.icon-btn{display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:10px;width:42px;height:42px;background:var(--surface)}.avatar{display:inline-grid;place-items:center;border-radius:50%;width:43px;height:43px;font-size:14px;font-weight:700;background:#e8ecef;color:#435968;flex:none}.avatar.peach{background:#f9e7da;color:#ad6245}.avatar.lilac{background:#e9e6f7;color:#73659c}.avatar.green{background:#dfefe6;color:#4a8463}.main{padding:35px 42px 50px;max-width:1580px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-head p{margin-top:7px;font-size:15px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:10px 17px;font-size:14px;font-weight:650;border:1px solid var(--line);background:var(--surface)}.btn.primary{background:#157669;border-color:#157669;color:#fff}.btn:hover{filter:brightness(.96)}.demo-note{background:var(--soft);color:var(--accent);font-size:13px;padding:9px 15px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.demo-note button{text-decoration:underline;font-size:13px;white-space:nowrap}.welcome{position:relative;background:#173e3e;border:1px solid #173e3e;color:#fff;border-radius:15px;overflow:hidden;padding:28px 32px;display:flex;justify-content:space-between;align-items:center;gap:24px}.welcome h2{font-size:26px;letter-spacing:-.5px}.welcome p{color:#c6dcda;font-size:15px;margin-top:9px;max-width:480px}.welcome .eyebrow{color:#a3d7c6}.welcome .year{font-family:Manrope;font-size:80px;line-height:1.1;font-weight:400;color:#72938a;letter-spacing:-6px;white-space:nowrap}.welcome .year small{display:block;font-family:'DM Sans';font-size:11px;letter-spacing:2px;text-align:center;color:#bdd3ca;margin-top:9px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0 30px}.stat{display:flex;align-items:center;gap:17px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:19px 22px;box-shadow:var(--shadow)}.stat-icon{padding:12px;border-radius:10px;display:flex;background:var(--soft);color:var(--accent)}.stat:nth-child(2) .stat-icon{background:#fff0da;color:#bd8544}.stat:nth-child(3) .stat-icon{background:#eeebfa;color:#8a71b9}.stat strong{font-family:Manrope;font-size:26px;font-weight:800;line-height:1.3}.stat span{display:block;font-size:13px;color:var(--muted)}.columns{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:27px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:17px}.text-btn{font-size:13px;color:var(--accent);font-weight:650;display:inline-flex;align-items:center;gap:6px}.text-btn svg{width:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.article{padding:25px;margin-bottom:16px}.tag{display:inline-block;background:var(--soft);color:var(--accent);border-radius:5px;padding:3px 8px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.article h3{font-size:21px;margin:12px 0 10px;letter-spacing:-.35px}.article p{font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.byline{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);margin-top:21px}.byline .avatar{width:27px;height:27px;font-size:10px}.byline .spacer{margin-left:auto}.birthday-card{padding:22px}.birthday-head{display:flex;align-items:center;gap:10px}.birthday-head svg{color:var(--accent)}.birthday-head h2{font-size:17px}.segmented{display:flex;padding:4px;background:var(--bg);border-radius:8px;gap:3px;margin:20px 0 7px}.segmented button{padding:6px 8px;flex:1;font-size:12px;border-radius:5px;white-space:nowrap}.segmented button.active{background:var(--surface);box-shadow:0 1px 5px #00000009;font-weight:700;color:var(--accent)}.person-row{display:flex;align-items:center;gap:11px;padding:16px 0;border-bottom:1px solid var(--line)}.person-row:last-child{border-bottom:0}.person-row strong{display:block;font-size:14px;font-weight:650}.person-row small{font-size:12px;color:var(--muted)}.person-row .day{margin-left:auto;text-align:right;color:var(--accent);font-size:13px;font-weight:600}.small-note{font-size:12px;color:var(--muted);margin-top:14px}.nameday{display:flex;align-items:center;gap:13px;padding:19px;margin-top:16px;background:var(--soft);border-radius:12px;color:var(--accent)}.nameday strong{display:block;font-size:15px}.nameday p{font-size:12px;color:var(--accent)}.board-preview{padding:21px;margin-top:22px}.board-preview p{font-size:14px}.board-preview h3{margin-bottom:12px}.empty{text-align:center;padding:42px 20px;color:var(--muted)}.empty svg{width:35px;height:35px;margin-bottom:12px;color:var(--accent)}.empty h3{color:var(--ink);margin-bottom:8px}.empty p{font-size:14px}.empty .btn{margin-top:18px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.profile-card{padding:25px}.profile-card h3{margin:13px 0 5px}.profile-card p{font-size:14px}.profile-card .avatar{width:57px;height:57px;font-size:18px}.profile-card .btn{margin-top:20px}.forms{max-width:750px}.form-card{padding:28px;margin-bottom:20px}.form-card h2{margin-bottom:8px}.form-card p{font-size:14px;margin-bottom:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:14px;font-weight:550}input:not([type=checkbox]),textarea,select{width:100%;padding:11px 13px;background:var(--bg);border:1px solid var(--line);border-radius:7px;color:var(--ink);margin-top:6px;min-height:44px}textarea{resize:vertical;min-height:110px}.full{grid-column:1/-1}.check{display:flex;align-items:center;gap:11px;margin:14px 0;font-size:14px}.check input{accent-color:#157669;width:18px;height:18px}.form-actions{margin-top:22px;display:flex;justify-content:flex-end;gap:10px}.error{background:#fae7e7;color:#942d2d;padding:12px;border-radius:7px;font-size:14px;margin:15px 0}.success{background:var(--soft);color:var(--accent);padding:12px;border-radius:7px;font-size:14px}.board-form{padding:24px;margin-bottom:20px}.message{padding:23px;margin-bottom:15px}.message p{font-size:15px;white-space:pre-wrap;overflow-wrap:anywhere;margin:13px 0}.message .byline{margin:0}.auth{max-width:480px;margin:35px auto}.auth h1{font-size:27px;margin-bottom:12px}.auth label{margin-top:18px}.auth .btn.primary{width:100%;margin-top:23px}.auth .switch-auth{display:block;text-align:center;margin:20px auto 0;font-size:14px;color:var(--accent)}.auth p{font-size:14px}.auth-logo{margin-bottom:30px;display:flex;justify-content:center}.mobile-menu{display:none}.album{overflow:hidden}.album-cover{aspect-ratio:4/3;display:grid;place-items:center;background:var(--soft);color:var(--accent)}.album-cover svg{width:40px;height:40px}.album-cover img{width:100%;height:100%;object-fit:cover}.album-content{padding:19px}.album-content small{color:var(--muted)}.photo img{display:block;width:100%;height:230px;object-fit:cover;border-radius:10px}.photo button{width:100%;padding:0}.lightbox{width:min(1000px,94vw)!important}.lightbox img{max-width:100%;max-height:75vh;object-fit:contain;display:block;margin:auto}dialog{width:min(540px,94vw);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:28px;background:var(--surface);color:var(--ink)}dialog::backdrop{background:#0b202b99;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}dialog label{margin-top:17px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:100;background:var(--ink);color:var(--surface);padding:12px 22px;border-radius:10px;box-shadow:0 5px 20px #0002;max-width:90vw;display:none}.footer{font-size:12px;color:var(--muted);margin-top:35px;display:flex;justify-content:space-between;gap:20px}.loading{padding:80px;text-align:center}.auth-actions{display:flex;justify-content:center;gap:12px;margin-top:15px}.notice{padding:16px 20px;margin-bottom:20px;font-size:14px;background:var(--soft);color:var(--accent);border-radius:9px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.body-copy{white-space:pre-wrap;overflow-wrap:anywhere}.list-spaced{line-height:2}.qr{width:200px;height:200px;background:#fff;display:block;margin:20px auto}.secret{overflow-wrap:anywhere;font-family:monospace;font-size:13px}body.modal-open{overflow:hidden}@media(min-width:1500px){.columns{grid-template-columns:minmax(0,1fr) 350px}.main{padding-top:42px}.welcome{padding:34px 38px}}@media(max-width:1150px){.sidebar{width:218px;padding:30px 15px}.shell{margin-left:218px}.main{padding:28px}.topbar{padding:0 28px}.columns{grid-template-columns:minmax(0,1fr) 285px;gap:20px}.welcome .year{font-size:60px}.stat{padding:15px;gap:12px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:950px){.columns{grid-template-columns:1fr}.right-rail{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.nameday{margin-top:0}.welcome .year{display:none}.stats{gap:10px}.stat-icon{display:none}.top-right{gap:13px}}@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:250px;box-shadow:10px 0 35px #0002}.sidebar.open{transform:translateX(0)}.shell{margin-left:0}.topbar{height:83px;padding:0 20px}.mobile-menu{display:inline-grid}.crumb{display:none}.main{padding:25px 18px}.page-head{align-items:flex-start}.page-head .btn{padding:9px 12px;white-space:nowrap}h1{font-size:26px}.page-head p{font-size:14px}.clock strong{font-size:20px}.clock small{font-size:11px}.top-right{gap:12px}.top-right>.avatar{display:none}.welcome{padding:25px}.welcome h2{font-size:23px}.stats{margin:16px 0 26px}.stat{display:block;padding:13px}.stat strong{font-size:24px}.stat span{font-size:11px}.right-rail{display:block}.nameday{margin-top:16px}.grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-card{padding:22px}.demo-note{align-items:flex-start;font-size:12px}.demo-note button{font-size:12px}.footer{flex-direction:column;gap:5px}.article{padding:22px}.section-title h2{font-size:19px}.auth{margin:10px auto}.topbar .icon-btn{width:38px;height:38px}.board-preview{margin-top:16px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.brand{font-size:19px;gap:8px;padding:0 8px;white-space:nowrap}.brandmark{flex:none}.brand-sub{margin-left:55px}@media(max-width:700px){.page-head{flex-wrap:wrap}.byline{flex-wrap:wrap}.byline .spacer{white-space:nowrap}.birthday-head h2{font-size:16px}}
.clock small{max-width:320px;overflow-wrap:anywhere}@media(max-width:700px){.clock small{max-width:190px}.topbar{height:auto;min-height:83px;padding-top:12px;padding-bottom:12px}}
