/* Medrese Düzeni • 2026 — a quiet, mobile-first communal planner */
@font-face{font-family:Bitter;font-style:normal;font-weight:500 800;font-display:swap;src:url('/fonts/bitter-latin-500-800.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Bitter;font-style:normal;font-weight:500 800;font-display:swap;src:url('/fonts/bitter-latin-ext.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
 --paper:#f7f8f5;--paper-warm:#edf1ea;--card:#fff;--ink:#20332b;--forest:#245d47;--forest-deep:#174432;--forest-ink:#20332b;--leaf:#286c50;--leaf-deep:#1f5b42;
 --ink-soft:#526157;--muted:#637269;--line:#e5eae3;--line-soft:#edf0ea;--brass:#b69c68;--brass-soft:#f4ebd8;--brass-line:#e6decf;
 --ok-bg:#dfefe5;--ok-ink:#206746;--wait-bg:#f7edd8;--wait-ink:#805b24;--danger:#ac4945;
 --serif:Bitter,Georgia,serif;--sans:'Avenir Next','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
 --r-sm:12px;--r-md:16px;--r-lg:22px;
 font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--paper)}
button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}
:focus-visible{outline:3px solid #81b798;outline-offset:3px}button:focus:not(:focus-visible){outline:none}
::selection{background:#c4e4d1;color:#20332b}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#bdcec0;border-radius:12px}::-webkit-scrollbar-track{background:#f1f4ef}
h1,h2,h3,p{margin-top:0}[hidden]{display:none!important}.icon{display:inline-block;flex:none;vertical-align:middle}
/* Identity and loading */
.loading-screen{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:var(--forest);background:var(--paper)}
.loading-star{width:46px;height:46px;animation:star-pulse 1.5s ease-in-out infinite}
.loading-screen p{font-family:var(--serif);font-weight:800;font-size:23px;margin:0}
@keyframes star-pulse{0%,100%{opacity:.6;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}
.head-lattice{display:none}
.head-star{width:44px;height:44px;color:var(--forest);display:block}.head-star.small{width:31px;height:31px;flex:none}
.head-brand{font-family:var(--serif);color:var(--ink);font-weight:800;font-size:34px;letter-spacing:-.025em;line-height:1.2;margin:10px 0}
.head-date{color:var(--muted);font-size:13px;margin:0}
/* First visit: human and direct rather than an arch-and-gate screen */
.login-screen{min-height:100svh;max-width:530px;margin:0 auto;padding:32px 22px 48px;display:flex;flex-direction:column}
.login-head{padding:0 4px;margin-bottom:20px;background:transparent;color:var(--ink)}
.login-head .head-star{padding:9px;width:55px;height:55px;border-radius:17px;background:#e1eee4}
.login-niche{padding:0;margin:0 0 26px}
.login-niche .niche-frame{background:#e4f0e7;border:0;border-radius:23px;padding:25px 24px 26px;text-align:left;max-width:none;box-shadow:none}
.login-niche .niche-star,.login-niche .niche-rule{display:none}
.login-niche .niche-label{margin:0 0 10px;color:#51715b;font-size:11px;font-weight:800;letter-spacing:.055em}
.login-niche .niche-title{font-size:31px;line-height:1.18;margin:0 0 9px;color:#1d4d3a}
.login-niche .niche-sub{color:#466555;margin:0;font-size:14px;line-height:1.55;max-width:43ch}
.login-body{padding:0 2px;text-align:left}
.login-body h2{font-size:22px;font-weight:800;letter-spacing:-.026em;margin:0 0 6px;color:var(--ink)}
.login-sub{font-size:13px;color:var(--muted);line-height:1.55;margin:0 0 16px}
.login-people{display:flex;flex-direction:column;gap:9px}
.login-person{width:100%;display:flex;align-items:center;gap:13px;padding:10px 14px 10px 11px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;min-height:70px;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.login-person:hover:not(:disabled){border-color:#88b49a;background:#fbfdfb;transform:translateY(-1px)}
.login-person:active:not(:disabled){transform:scale(.99)}
.login-person .login-index{display:none}.login-person .login-person-name{flex:1;font-size:15px;font-weight:750;color:var(--ink)}
.login-person>.icon:last-child{color:#7a9b86}.login-person.logging-in{opacity:.55}
.login-person .avatar{width:45px;height:45px}
.login-note{font-size:12px;color:var(--muted);line-height:1.6;margin:18px 0 0}
.login-credit{font-size:11px;color:#789080;font-weight:750;letter-spacing:.02em;margin:22px 0 0}
.inline-error{border-radius:12px;background:#fcece9;color:var(--danger);border:1px solid #ebd1cc;padding:12px;margin:15px 0 0;font-size:13px}
/* Shared portrait tokens */
.avatar{width:34px;height:34px;display:inline-grid;place-items:center;flex:none;border-radius:50%;font-size:12px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
img.avatar{display:block;object-fit:cover;object-position:center 30%}.avatar-photo{background:#dce9dc;aspect-ratio:1}
.person-mehmet{background:#346d56}.person-abdullah{background:#577596}.person-abdurrahman{background:#806b9b}.person-yusuf{background:#b58d54}.person-burak{background:#788d68}
/* App chrome */
.app-shell{min-height:100svh}
.app-head{background:var(--paper);padding:23px 20px 17px;max-width:1120px;margin:0 auto}
.app-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.app-head-id{display:flex;align-items:center;gap:10px;min-width:0}
.app-head-id>.head-star{padding:6px;background:#e0ede3;border-radius:10px;width:40px;height:40px}
.app-head-id>div{min-width:0}.app-head-id strong{font-family:var(--serif);display:block;line-height:1.15;font-size:16px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.app-head-id small{font-size:11px;color:var(--muted);display:block;margin-top:3px}
.app-head-side{display:flex;align-items:center;gap:8px;flex:none}
.live-indicator{color:#347457;border:1px solid #cfe6d7;background:#e6f2e9;display:inline-flex;align-items:center;gap:6px;border-radius:50px;font-size:11px;font-weight:750;padding:6px 10px}
.live-dot{width:6px;height:6px;background:#3b9966;border-radius:50%}
.head-profile{border:2px solid #fff;box-shadow:0 0 0 1px #dbe5db;width:39px;height:39px;padding:0;border-radius:50%;overflow:hidden;background:#e6eee6}
.head-profile .avatar{width:100%;height:100%;object-fit:cover}
.app-head-greet{font-size:27px;line-height:1.2;letter-spacing:-.035em;font-weight:800;color:var(--ink);margin:28px 0 5px}
.app-head-meta{color:var(--muted);font-size:12.5px;line-height:1.5;margin:0}
.app-head-meta b{color:var(--forest);font-weight:750}
.workspace{padding:0 16px calc(112px + env(safe-area-inset-bottom));margin:0 auto;max-width:1120px}
.sidebar{display:none}.main-content{min-width:0}.view{min-width:0;animation:soft-enter .2s ease-out}
@keyframes soft-enter{from{opacity:.82;transform:translateY(3px)}to{opacity:1;transform:none}}
/* Week controls */
.week-switch-wrap{display:flex;justify-content:stretch;margin:10px 0 16px}
.week-switch{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px;border:1px solid var(--line);border-radius:15px;background:#fff}
.week-switch button{display:grid;place-items:center;width:41px;height:41px;flex:none;border:0;border-radius:11px;background:#f2f5f0;color:var(--forest);transition:background .15s}
.week-switch button:hover:not(:disabled){background:#e4efe6}.week-switch button:disabled{opacity:.3}
.week-switch>div{text-align:center;min-width:0;display:flex;flex-direction:column;gap:2px}
.week-switch b{font-size:13px;font-weight:800;color:var(--ink);white-space:nowrap;line-height:1.3}
.week-switch small{font-size:10px;color:var(--muted);font-weight:550}
/* Your task: the visual center, made for one-handed completion */
.niche-card{margin:0 0 12px;padding:0}
.niche-card .niche-frame{position:relative;max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 62px;grid-template-areas:'label symbol' 'title symbol' 'sub sub' 'partner partner' 'progress progress' 'proof proof' 'proofview proofview' 'action action' 'note note';column-gap:12px;align-items:center;padding:24px 20px 19px;border-radius:23px;background:#e4efe6;border:0;box-shadow:none;text-align:left}
.niche-card .niche-star,.niche-card .niche-rule{display:none}
.niche-label{grid-area:label;margin:0 0 11px;color:#46735a;font-size:11px;letter-spacing:.045em;font-weight:800;line-height:1.4}
.niche-pill{display:inline-block;vertical-align:1px;margin-left:5px;background:#fff;color:#3e7455;font-size:9px;font-weight:800;letter-spacing:.02em;padding:4px 7px;border-radius:6px;white-space:nowrap}
.niche-symbol{grid-area:symbol;width:60px;height:60px;background:#cce4d2;color:var(--forest);display:grid;place-items:center;border-radius:17px;align-self:center}
.niche-symbol .icon{width:30px;height:30px}
.niche-title{grid-area:title;color:#204e39;font-family:var(--serif);font-size:33px;letter-spacing:-.035em;line-height:1.15;font-weight:800;margin:0 0 6px;overflow-wrap:anywhere}
.niche-sub{grid-area:sub;color:#557060;line-height:1.5;font-size:13px;margin:4px 0 0}
.niche-partner{grid-area:partner;display:flex;align-items:center;gap:9px;margin:17px 0 5px;color:#446651;font-size:12px;min-width:0}
.niche-partner b{color:#264b35}.niche-partner .avatar{width:28px;height:28px}.niche-partner>span{min-width:0}
.swap-tag{display:inline-block;background:#d0e5d4;color:#1d6041;font-size:10px;font-weight:800;border-radius:6px;padding:4px 7px;margin-left:3px}
.niche-progress{grid-area:progress;display:grid;grid-template-columns:1fr auto;column-gap:14px;align-items:center;margin:20px 0 14px;padding:16px 0 0;border-top:1px solid #cbded0}
.niche-progress b{font-variant-numeric:tabular-nums;color:#204c36;font-size:24px;line-height:1;font-weight:800;letter-spacing:-.04em;margin:0;order:2}
.niche-progress b span{font-size:14px;font-weight:650;color:#73917e}
.progress-track{grid-column:1/-1;grid-row:2;height:7px;border-radius:20px;overflow:hidden;background:#cadbcc;margin-top:10px}
.progress-track span{display:block;height:100%;width:0;background:#408e64;border-radius:20px;transition:width .25s ease}
.niche-progress p{grid-column:1;grid-row:1;margin:0;font-size:12px;color:#527361}
.proof-row{grid-area:proof;display:flex;align-items:center;gap:8px;margin:0 0 10px;max-width:none}
.proof-pick{display:flex;align-items:center;gap:10px;padding:10px 11px;background:#f6faf5;border:1px solid #d2e5d4;border-radius:12px;flex:1;min-width:0;cursor:pointer;text-align:left;transition:background .15s}
.proof-pick:hover{background:#fff}.proof-pick-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;background:#e3f0e5;border-radius:9px;color:#427b58}
.proof-pick-text{display:flex;flex:1;flex-direction:column;min-width:0;gap:1px}.proof-pick-text small{color:#70917a;font-size:9px;font-weight:800;letter-spacing:.055em}
.proof-pick-text strong{color:#315840;font-size:12px;font-weight:750}
.proof-pick-plus{width:24px;height:24px;border-radius:8px;border:1px solid #badbc3;position:relative;flex:none}
.proof-pick-plus:before,.proof-pick-plus:after{content:'';position:absolute;background:#548569;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:2px}.proof-pick-plus:before{width:10px;height:2px}.proof-pick-plus:after{width:2px;height:10px}
.proof-preview{width:40px;height:40px;border-radius:9px;object-fit:cover}
.proof-view{grid-area:proofview;max-width:100%;margin:0 0 9px}.proof-view img{display:block;width:100%;border-radius:12px;max-height:300px;object-fit:cover}
.complete-button{grid-area:action;display:flex;align-items:center;justify-content:center;gap:9px;max-width:none;width:100%;min-height:52px;padding:12px 15px;background:var(--forest);color:#fff;border:1px solid var(--forest);border-radius:12px;font-size:14px;font-weight:800;transition:background .18s,transform .18s,box-shadow .18s;box-shadow:0 5px 12px rgba(31,85,57,.12)}
.complete-button:hover:not(:disabled){background:var(--forest-deep)}.complete-button:active:not(:disabled){transform:scale(.985)}
.complete-button:disabled:not(.is-complete){opacity:.55}.complete-button.is-complete{color:#1c6843;background:#f8fcf8;border-color:#9acaaa;box-shadow:none}
.niche-note{grid-area:note;text-align:center;font-size:11px;color:#657d68;margin:9px 0 0}
/* At-a-glance utility rows */
.share-strip,.nobet-strip{display:flex;align-items:center;text-align:left;gap:11px;width:100%;background:#fff;border:1px solid var(--line);border-radius:15px;min-height:64px;padding:11px 13px;margin:0 0 9px;color:var(--ink);transition:background .15s,border-color .15s}
.share-strip:hover,.nobet-strip:hover{border-color:#c5d9c9;background:#fcfefc}
.share-strip-icon,.nobet-strip-icon{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:11px;color:#437959;background:#edf3ea}
.nobet-strip-icon{background:#f7eddb;color:#967340}
.share-strip-text,.nobet-strip-text{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.share-strip-text small,.nobet-strip-text small{font-size:9px;color:#829087;letter-spacing:.055em;font-weight:800}
.share-strip-text strong,.nobet-strip-text strong{font-size:13px;color:#2e4135;font-weight:800}
.share-strip-arrow,.nobet-strip-arrow{color:#7b9985}
/* Section anatomy */
.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:29px 1px 13px}
.section-title-row h2{color:var(--ink);font-size:20px;font-weight:800;line-height:1.25;letter-spacing:-.026em;margin:0 0 4px}
.section-title-row p{color:var(--muted);font-size:12px;line-height:1.5;margin:0}
.section-counter{color:#57705f;background:#eaf1e9;border-radius:8px;padding:6px 9px;font-size:11px;white-space:nowrap;font-weight:750}
.team-section{margin:0 0 21px}.assignment-list{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.assignment-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;column-gap:11px;row-gap:3px;align-items:center;min-height:78px;padding:12px 13px;border-bottom:1px solid var(--line-soft);background:#fff}
.assignment-row:last-child{border-bottom:0}.assignment-row.my-assignment{background:#f4faf4}
.assignment-icon{width:42px;height:42px;display:grid;place-items:center;grid-area:1/1/3/2;border-radius:12px}
.type-kitchen{background:#e1efe5;color:#37764f}.type-ablution{background:#e7eef9;color:#5076a3}.type-bathroom{background:#f0e9f8;color:#8066a4}.type-vacuum{background:#fbefdc;color:#a57b43}
.assignment-details{grid-area:1/2;min-width:0}.assignment-details strong{font-size:12.5px;line-height:1.3;color:var(--ink);font-weight:800;display:block}
.assignment-details small{display:none}
.assignment-people{grid-area:2/2;display:flex;flex-wrap:wrap;gap:4px 7px;min-width:0}
.assignment-person{display:inline-flex;align-items:center;gap:4px;min-width:0;font-size:10.5px;color:#607166;white-space:nowrap}
.assignment-person>span:nth-child(2){text-overflow:ellipsis;overflow:hidden}.assignment-person .avatar{width:17px;height:17px;font-size:7px}
.assignment-person .icon{width:13px;height:13px}.assignment-person i{font-style:normal;color:#799186;font-size:10px}.assignment-person.person-done{color:#247349;font-weight:800}
.assignment-status{grid-area:1/3/3/4;display:inline-flex;align-items:center;gap:3px;background:#f8eddb;border-radius:8px;color:#8d6c39;font-size:10.5px;font-weight:800;padding:6px 8px;white-space:nowrap}
.assignment-status.status-done{background:#e0f1e3;color:#277349}
/* Members and quiet informative panels */
.members-card{padding:19px 18px;background:#fff;border:1px solid var(--line);border-radius:18px;margin:0 0 13px}
.members-card h2{font-size:17px;letter-spacing:-.02em;font-weight:800;color:var(--ink);margin:0 0 13px}
.member-progress-list{display:flex;flex-direction:column}
.member-progress-row{display:flex;align-items:center;gap:10px;min-height:52px;border-bottom:1px solid var(--line-soft);font-size:12px}
.member-progress-row:last-child{border-bottom:0}.member-progress-row>span:nth-child(2){flex:1;color:var(--ink);font-weight:650}
.member-progress-row .avatar{width:31px;height:31px}.member-progress-row i{font-style:normal;font-weight:400;color:var(--muted)}
.member-state{font-size:11px;color:#7d8b82;font-weight:700;display:inline-flex;gap:4px;align-items:center}.member-state.finished{color:var(--ok-ink)}
.rhythm-card{margin-top:14px;border-radius:16px;background:#f0f3e9;padding:18px;color:var(--ink)}
.rhythm-top{display:flex;align-items:center;gap:7px;color:#547258;font-size:13px;margin:0 0 8px}
.rhythm-card p{font-size:12px;line-height:1.55;color:#697869;margin:0 0 12px}
.text-link{display:inline-flex;align-items:center;gap:5px;color:#28704c;font-weight:800;font-size:12.5px;background:none;border:0;padding:5px 0;text-decoration:none}
.reminder-card{display:flex;align-items:center;gap:10px;border-radius:13px;padding:11px 14px;margin-bottom:12px;background:#fff3df;border:1px solid #f1e1c4}
.reminder-icon{width:35px;height:35px;background:#fff8ee;color:#966e34;border-radius:9px;display:grid;place-items:center;flex:none}
.reminder-text{display:flex;flex-direction:column;gap:2px}.reminder-text strong{color:#785625;font-size:12.5px}.reminder-text span{color:#936e42;font-size:11px;line-height:1.4}
/* Mobile: advanced operations stay one tap away but never bury the core task. */
.swap-toggle{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:15px;padding:12px 14px;margin:0 0 9px;min-height:62px;color:var(--ink)}
.swap-toggle-icon{width:36px;height:36px;border-radius:10px;flex:none;display:grid;place-items:center;background:#e8f2e8;color:#4c8a67}
.swap-toggle-text{display:flex;flex-direction:column;flex:1;gap:3px}.swap-toggle-text strong{font-size:12.5px;font-weight:800}.swap-toggle-text small{font-size:10px;color:var(--muted)}
.swap-toggle-chevron{color:#7f9b85;transition:transform .18s}.swap-toggle.is-expanded .swap-toggle-chevron{transform:rotate(180deg)}
@media(max-width:1099px){.swap-panel:not(.is-expanded){display:none}.swap-panel.is-expanded{display:flex}}
/* Changing duties */
.swap-panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:17px;margin:0 0 12px;display:flex;flex-direction:column;gap:13px}
.swap-head{display:flex;align-items:center;gap:10px}.swap-head>div{flex:1;min-width:0}
.swap-head-icon{display:grid;place-items:center;background:#e4f0e7;color:#2e7553;width:40px;height:40px;border-radius:12px;flex:none}.swap-head-icon.is-wait{background:#fff0d9;color:#8c6b35}
.swap-head h3{font-size:15px;font-weight:800;margin:0 0 4px;color:var(--ink)}.swap-head p{font-size:11px;color:var(--muted);margin:0}
.swap-trade{display:flex;align-items:center;gap:7px;border-radius:12px;background:#f4f7f2;padding:13px 8px}
.swap-side{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;gap:4px}.swap-side .avatar{width:38px;height:38px}
.swap-side small{font-size:9px;letter-spacing:.04em;font-weight:800;color:#819386}.swap-side strong{font-size:11px;color:var(--ink)}.swap-x{color:#7a9a83;flex:none}
.swap-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.swap-person{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:#f7f9f5;border:1px solid var(--line);border-radius:11px;padding:9px;min-width:0}
.swap-person .avatar{width:32px;height:32px}.swap-person>span{display:flex;flex:1;flex-direction:column;min-width:0;gap:2px}.swap-person b{font-size:11px;color:var(--ink)}.swap-person small{font-size:10px;color:var(--muted)}.swap-person .icon{color:transparent}
.swap-person.selected{border-color:#72ac89;background:#eaf4ec}.swap-person.selected .icon{color:#38825b}
.swap-actions{display:flex;gap:8px}.swap-yes,.swap-no{flex:1;min-width:0;border:0;border-radius:11px;padding:12px 10px;font-size:12px;font-weight:800}
.swap-yes{background:var(--forest);color:#fff}.swap-yes:hover{background:var(--forest-deep)}.swap-no{background:#eff3ed;color:var(--forest)}
.swap-ghost{border:0;background:none;font-size:12px;color:#287550;font-weight:800;padding:6px}.swap-quiet{font-size:12px;text-align:center;color:var(--muted);margin:0}
/* Rotations: horizontal scroll is a deliberate data affordance */
.cycle-intro{display:flex;flex-direction:column;gap:14px;margin:12px 0 15px}
.cycle-feature{display:flex;gap:12px;align-items:center;background:#e5f0e6;border-radius:17px;padding:17px}
.cycle-feature>.icon{width:39px;height:39px;padding:9px;border-radius:12px;background:#cbe3d0;color:#2c7850}
.cycle-feature strong{display:block;font-size:13.5px;color:#29533a;margin-bottom:4px}.cycle-feature span{font-size:11.5px;line-height:1.4;color:#5d7664}
.cycle-legend{display:flex;gap:16px;padding-left:4px;font-size:11px;color:var(--muted)}.cycle-legend span{display:flex;align-items:center;gap:6px}
.legend-dot{width:8px;height:8px;border-radius:50%;display:block}.legend-dot.current{background:#3c9665}.legend-dot.done{background:#b99b5b}
.cycle-table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:17px;-webkit-overflow-scrolling:touch}
.schedule-table{width:100%;min-width:660px;border-collapse:collapse;font-size:12px}.schedule-table th{font-size:10px;text-transform:none;letter-spacing:.045em;font-weight:800;text-align:left;color:#718178;background:#f4f7f2;padding:14px;border-bottom:1px solid var(--line);white-space:nowrap}
.schedule-table th small{font-size:9px;color:#839488}.schedule-table td{padding:13px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top}.schedule-table tr:last-child td{border-bottom:0}.schedule-table tr.row-current td{background:#edf7ee}
.table-week-mark{font-size:10px;font-weight:800;color:#668573;display:block}.schedule-table td strong{display:block;font-size:11px;color:var(--ink);margin:5px 0}
.now-tag{font-size:9px;color:#23834f;background:#d9eee0;border-radius:6px;padding:4px 6px;display:inline-block;font-weight:800}
.table-names{display:flex;flex-direction:column;gap:8px}.table-names span{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;color:#56685d}.table-names .avatar{width:22px;height:22px;font-size:8px}
.cycle-footer{display:flex;gap:9px;align-items:flex-start;font-size:11px;color:var(--muted);line-height:1.55;margin:14px 2px}.cycle-footer p{margin:0}.cycle-footer .icon{flex:none;color:#668875}
/* History */
.history-overline{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin:12px 2px 14px}.history-overline b{color:var(--forest);font-variant-numeric:tabular-nums}
.history-list{display:flex;flex-direction:column;gap:10px}.history-week{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px}
.history-heading{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:0 0 13px}.history-heading>div:first-child{display:flex;align-items:center;gap:10px;min-width:0}
.history-index{width:37px;height:37px;display:grid;place-items:center;flex:none;border-radius:11px;background:#e6f1e8;color:#377251;font-size:12px;font-weight:800}
.history-heading h2{font-size:12.5px;font-weight:800;color:var(--ink);margin:0 0 3px}.history-heading p{font-size:10px;color:var(--muted);margin:0}
.history-percent{font-size:10px;color:#866a3a;background:#faf0d9;border-radius:7px;padding:6px 8px;white-space:nowrap;font-weight:800}.history-percent.full{color:#26774d;background:#e5f3e7}
.history-members{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.history-member{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center;padding:9px 2px;border-radius:10px;background:#f6f8f5;font-size:9px;color:var(--muted)}
.history-member .avatar{width:28px;height:28px;font-size:9px}.history-member span{max-width:100%;overflow-wrap:anywhere}.history-member .icon{width:14px;height:14px}
.history-member.done{color:#28734d;background:#e7f3e9;font-weight:800}
.empty-copy{text-align:center;padding:24px 15px;color:var(--muted);font-size:12px}
/* Shared stats */
.stats-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0 13px}
.stat-hero,.stat-unit{position:relative;background:#fff;border-radius:16px;padding:16px;min-width:0;border:1px solid var(--line)}
.stat-hero{grid-column:1/-1;background:#e3efe6;border:0;padding:21px}.stat-hero small,.stat-unit small{color:#728479;font-size:10px;letter-spacing:.02em;font-weight:800;display:block}
.stat-hero small{color:#538167}.stat-hero strong,.stat-unit strong{display:block;font-size:35px;line-height:1.1;font-weight:850;color:#285a40;margin:10px 0 5px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stat-unit strong{color:var(--ink);font-size:27px}.stat-hero>span:last-child,.stat-unit>span:last-child{font-size:11px;color:#698070}
.stat-icon{position:absolute;right:17px;top:17px;color:#4d8863}.stat-mini-icon{color:#84a08c;display:block;margin-bottom:8px}
.stats-table-panel{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden;margin:0 0 12px}
.stats-table-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 16px}
.stats-table-head h2{font-size:15px;font-weight:800;color:var(--ink);margin:0 0 5px}.stats-table-head p{font-size:11px;color:var(--muted);margin:0}.stats-updated{font-size:10px;color:#438457;white-space:nowrap}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.summary-table{width:100%;min-width:590px;border-collapse:collapse;font-size:12px}
.summary-table th{text-align:left;font-size:10px;letter-spacing:.04em;color:#7a8b80;background:#f7f9f5;padding:12px 16px;font-weight:800;border-bottom:1px solid var(--line)}
.summary-table td{padding:11px 16px;border-bottom:1px solid var(--line-soft);color:#506358;font-variant-numeric:tabular-nums}.summary-table tr:last-child td{border-bottom:0}
.summary-person{display:flex;align-items:center;gap:9px}.summary-person strong{color:var(--ink)}.summary-person .avatar{width:30px;height:30px;font-size:11px}
.you-tag{font-size:9px;font-weight:800;color:var(--ok-ink);background:var(--ok-bg);padding:4px 6px;border-radius:6px}
.mini-bar{width:105px;height:7px;border-radius:20px;overflow:hidden;background:#ebf0e9}.mini-bar span{display:block;width:0;height:100%;background:#4f9c6b;border-radius:20px}
.task-totals{padding:18px;background:#fff;border:1px solid var(--line);border-radius:17px}.task-totals-title h2{font-size:16px;font-weight:800;margin:0 0 4px;color:var(--ink)}.task-totals-title p{color:var(--muted);font-size:11px;margin:0 0 13px}
.task-totals-grid{display:grid;grid-template-columns:1fr;gap:5px}.task-total{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.task-total:last-child{border-bottom:0}
.task-total-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:11px;flex:none}.task-total>div{flex:1;min-width:0}.task-total strong{display:block;font-size:12px;color:var(--ink)}.task-total small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.task-total>b{font-size:15px;font-weight:800;color:var(--forest)}
/* Food */
.dinner-hero{margin:12px 0 17px}.dinner-hero .niche-frame{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:25px 22px;background:#f8eddc;border-radius:21px;border:0}
.dinner-hero .niche-star,.dinner-hero .niche-rule{display:none}.dinner-hero .niche-label{color:#896e45;font-size:11px;margin-bottom:14px}
.dinner-title{font-family:var(--serif);color:#70502e;font-weight:800;font-size:30px;line-height:1.2;letter-spacing:-.03em;margin:0 0 8px}
.dinner-hero .niche-sub{font-size:13px;color:#8a765e}.dinner-date{color:#957c5e;font-size:11px;margin:14px 0 0;font-weight:750}
.dinner-list{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.dinner-row{border-bottom:1px solid var(--line-soft);padding:15px 16px}.dinner-row:last-child{border-bottom:0}
.dinner-row strong{display:block;color:var(--ink);font-size:12.5px;margin-bottom:4px}.dinner-row span{color:#66766b;font-size:12px;line-height:1.6}
.dinner-note{font-size:11px;color:#926c3a;margin:12px 2px}.dinner-loading,.dinner-empty{min-height:170px;border-radius:17px;background:#f9eedf;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;padding:22px;color:#8c6c3d}
.dinner-empty h2{font-size:19px;margin:2px 0}.dinner-empty p,.dinner-loading p{font-size:12px;line-height:1.5;max-width:35ch;margin:0}
/* Daily duty and public notes */
.nobet-hero-card{margin:12px 0 22px}.nobet-hero-card .niche-frame{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:25px;background:#e9edfa}
.nobet-hero-card .niche-label{color:#6d7195;font-size:11px;margin:0 0 7px}
.nobet-hero-card .niche-title{color:#414d79;margin:7px 0 4px;font-size:33px}
.nobet-hero-card .niche-sub{color:#697495;margin:0;font-size:12px}
.nobet-hero-card .avatar{width:68px;height:68px;font-size:20px;margin:5px auto 0}
.nobet-list{display:flex;flex-direction:column;gap:7px}
.nobet-row{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px 14px;min-height:66px}
.nobet-row.is-today{background:#eef3ff;border-color:#cbd5f1}.nobet-row .avatar{width:35px;height:35px}.nobet-row>div{flex:1;min-width:0}.nobet-row strong{display:block;font-size:13px;font-weight:800;color:var(--ink)}.nobet-row span{font-size:11px;color:var(--muted)}.nobet-row>.icon{color:#7283ac}
.avatar-off{background:#f0f1ec;color:#829084}
.note-board{margin-bottom:18px}.note-board .section-title-row{margin:8px 0 13px}.note-board .section-title-row h2{font-size:19px}
.note-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.note-row{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--line);padding:12px;border-radius:13px}
.note-row .avatar{width:32px;height:32px}.note-row>div{flex:1;min-width:0}.note-row strong{font-size:11.5px;font-weight:800;color:var(--ink);display:block}.note-row span{display:block;font-size:12px;color:var(--ink-soft);line-height:1.6;overflow-wrap:anywhere;margin-top:3px}.note-row small{font-size:10px;color:var(--muted);display:block;margin-top:4px}
.note-del{border:0;border-radius:8px;background:#f6f7f5;color:#829087;width:29px;height:29px;flex:none;font-size:18px}.note-del:hover{background:#fbe9e7;color:var(--danger)}
.note-form{display:flex;gap:7px}.note-form input{min-width:0;flex:1;border:1px solid var(--line);background:#fff;border-radius:11px;padding:12px;font-size:12px;color:var(--ink)}.note-form input::placeholder{color:#87968b}
.note-form button{background:var(--forest);color:#fff;border:0;border-radius:11px;padding:11px 16px;font-size:12px;font-weight:800}
/* Navigation: soft dock, safe-area-aware */
.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;padding:8px 8px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid #e3ebe3;box-shadow:0 -5px 25px rgba(40,64,43,.04)}
.mobile-bottom-nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:49px;color:#89968b;border-radius:11px;padding:4px 1px;transition:background .16s,color .16s}
.mobile-bottom-nav button .icon{width:20px;height:20px}.mobile-bottom-nav button small{font-size:9.5px;font-weight:750;line-height:1.2;white-space:nowrap}
.mobile-bottom-nav button.active{color:#236b49;background:#e8f3e9}.mobile-bottom-nav button:hover{background:#f2f7f0}
#toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translate(-50%,8px);max-width:min(400px,calc(100vw - 32px));z-index:40;pointer-events:none;opacity:0;transition:opacity .18s,transform .18s;background:#263e30;color:#fff;border-radius:13px;box-shadow:0 10px 28px rgba(24,54,36,.2);padding:13px 16px;font-size:12px;line-height:1.5;text-align:center}
#toast.visible{opacity:1;transform:translate(-50%,0)}#toast.error{background:#833d38}
/* Tablet and wide screens preserve mobile hierarchy while buying room */
@media(min-width:650px) and (max-width:1099px){.workspace{padding-left:28px;padding-right:28px;max-width:820px}.app-head{padding-left:32px;padding-right:32px;max-width:820px}.niche-card .niche-frame{padding:26px 30px}.assignment-row{grid-template-columns:48px 160px minmax(0,1fr) auto;gap:13px}.assignment-icon{grid-area:auto}.assignment-details{grid-area:auto}.assignment-details small{display:block;margin-top:4px}.assignment-people{grid-area:auto}.assignment-status{grid-area:auto}.task-totals-grid{grid-template-columns:repeat(2,1fr)}.login-screen{padding-top:52px}}
@media(min-width:1100px){
 body.has-sidebar .app-shell{display:grid;grid-template-columns:236px minmax(0,1fr);grid-template-rows:auto 1fr;max-width:100%;align-items:start}
 .sidebar{display:flex;flex-direction:column;grid-column:1;grid-row:1/span 2;position:fixed;inset:0 auto 0 0;width:236px;padding:27px 13px 18px;background:#fff;border-right:1px solid var(--line);z-index:10}
 .swap-toggle{display:none}
 .side-section{font-size:10px;letter-spacing:.075em;font-weight:850;color:#91a297;padding:12px 14px;margin:8px 0 3px}
 .side-nav{display:flex;flex-direction:column;gap:3px}.nav-item{display:flex;align-items:center;gap:13px;text-align:left;background:transparent;border:0;width:100%;min-height:45px;padding:12px 13px;color:#697d70;font-size:12.5px;font-weight:700;border-radius:11px}
 .nav-item .icon{width:18px;height:18px}.nav-item:hover{background:#f1f6f0;color:var(--forest)}.nav-item.active{background:#e4f0e6;color:#215c3f;font-weight:800}
 .side-bottom{margin-top:auto}.side-line{border-top:1px solid var(--line);margin:0 0 12px}
 .profile-link{display:flex;align-items:center;gap:10px;background:#f5f8f4;border:0;border-radius:12px;width:100%;padding:11px;color:var(--ink);text-align:left}
 .profile-link .avatar{width:37px;height:37px}.profile-identity{display:flex;flex:1;flex-direction:column;gap:3px}.profile-identity strong{font-size:12px}.profile-identity small{font-size:10px;color:var(--muted)}.profile-exit{color:#859d89}
 body.has-sidebar .app-head{grid-column:2;grid-row:1;max-width:100%;margin:0;padding:29px 50px 17px}
 body.has-sidebar .workspace{grid-column:2;grid-row:2;max-width:100%;padding:0 50px 80px;min-width:0}
 body.has-sidebar .main-content{max-width:1000px;margin:0 auto}.mobile-bottom-nav{display:none}
 .app-head-greet{font-size:31px;margin-top:31px}
 .home-primary{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);column-gap:21px;align-items:start}
 .week-switch-wrap{grid-column:1/-1;justify-content:flex-start}.week-switch{max-width:310px}
 .reminder-card{grid-column:1/-1}
 .niche-card{grid-column:1;grid-row:span 4}.niche-card .niche-frame{padding:29px}
 .share-strip,.nobet-strip{grid-column:2;margin:0 0 10px;min-height:72px}
 .team-section{grid-column:1/-1}.members-card{grid-column:1}.rhythm-card{grid-column:2;margin-top:0}
 .assignment-row{grid-template-columns:48px 180px minmax(0,1fr) auto;min-height:80px;gap:14px;padding:15px 18px}
 .assignment-icon{grid-area:auto}.assignment-details{grid-area:auto}.assignment-details strong{font-size:13.5px}.assignment-details small{display:block;margin-top:4px}.assignment-people{grid-area:auto;gap:12px}.assignment-person{font-size:12px}.assignment-person .avatar{width:23px;height:23px}.assignment-status{grid-area:auto}
 .section-title-row{margin-top:29px}.task-totals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-cards{grid-template-columns:1.2fr 1fr 1fr}.stat-hero{grid-column:auto}.stats-table-panel,.task-totals{margin-top:16px}
 .login-screen{max-width:990px;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);grid-template-areas:'brand people' 'intro people';align-items:start;column-gap:80px;padding:85px 35px 55px}
 .login-head{grid-area:brand;margin-top:60px}.login-niche{grid-area:intro;align-self:start}.login-body{grid-area:people}.login-people{gap:11px}.login-person{min-height:78px}.login-niche .niche-frame{padding:32px}
}
@media(max-width:365px){.app-head{padding-left:16px;padding-right:16px}.workspace{padding-left:12px;padding-right:12px}.app-head-id strong{font-size:14px}.app-head-id .head-star{width:36px;height:36px}.live-indicator{padding:5px 7px;font-size:10px}.app-head-greet{font-size:23px}.niche-card .niche-frame{padding:19px 15px}.niche-title{font-size:28px}.niche-pill{font-size:8px}.mobile-bottom-nav{padding-left:3px;padding-right:3px}.mobile-bottom-nav button small{font-size:8.5px}.reminder-card{display:none!important}.history-member{font-size:8px}.history-member .avatar{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
/* Percentage classes remain explicit so strict CSP never needs inline styles */
.fill-0{width:0%!important}
.fill-5{width:5%!important}
.fill-10{width:10%!important}
.fill-15{width:15%!important}
.fill-20{width:20%!important}
.fill-25{width:25%!important}
.fill-30{width:30%!important}
.fill-35{width:35%!important}
.fill-40{width:40%!important}
.fill-45{width:45%!important}
.fill-50{width:50%!important}
.fill-55{width:55%!important}
.fill-60{width:60%!important}
.fill-65{width:65%!important}
.fill-70{width:70%!important}
.fill-75{width:75%!important}
.fill-80{width:80%!important}
.fill-85{width:85%!important}
.fill-90{width:90%!important}
.fill-95{width:95%!important}
.fill-100{width:100%!important}
