:root{--green: #0f7b4a;--green-dark: #0a5d38;--sun: #ffc94d;--coral: #ff6f61;--sky: #3aa7e0;--ink: #21302b;--muted: #6b7d75;--paper: #fbf6ec;--card: #ffffff;--line: #e7e0d2;--radius: 12px;--shadow: 0 1px 2px rgba(33, 48, 43, .06);--nav-h: 60px;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{letter-spacing:-.015em}a{color:var(--green)}h1,h2,h3{margin:0 0 .4em;line-height:1.15}h1{font-size:1.55rem}h2{font-size:1.2rem}p{margin:0 0 .8em}small{color:var(--muted)}.app-frame{max-width:720px;margin:0 auto;min-height:100%;background:var(--paper);display:flex;flex-direction:column;position:relative;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}.app-main{flex:1;padding:18px 16px 28px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.page-head .pill{flex-shrink:0}.nav{position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);display:flex;z-index:20}.nav-inner{max-width:720px;margin:0 auto;width:100%;display:flex}.nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--muted);font-size:.68rem;font-weight:700;padding:6px 2px}.nav a .ic{display:grid;place-items:center;line-height:1}.nav a svg{display:block}.nav a.active{color:var(--green)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:12px}.card.tight{padding:12px 14px}.stack>*+*{margin-top:10px}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.spread{display:flex;gap:10px;align-items:center;justify-content:space-between}.grow{flex:1;min-width:0}.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--sun);color:var(--ink)}.pill.bronze{background:#e8a56b;color:#402611}.pill.silver{background:#cdd4d8;color:#2b3338}.pill.gold{background:var(--sun);color:#4a3600}.pill.ghost{background:#eef2ef;color:var(--muted)}.pill.green{background:var(--green);color:#fff}.tag{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:6px;background:#eef2ef;color:var(--muted)}.tag.me{background:#e2f0e9;color:var(--green-dark)}.tag.coral{background:#ffe3df;color:#b8402f}button,.btn{font:inherit;font-weight:600;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 14px;border-radius:8px;box-shadow:none;transition:background .12s ease,border-color .12s ease}button:hover:not(:disabled){border-color:var(--muted)}button.primary{background:var(--green);border-color:var(--green);color:#fff}button.primary:hover:not(:disabled){background:var(--green-dark);border-color:var(--green-dark)}button.coral{background:var(--coral);border-color:var(--coral);color:#fff}button.ghost{background:#fff;color:var(--muted)}button.mini{padding:4px 9px;font-size:.78rem;border-radius:6px}button.icon{padding:5px;color:var(--muted)}button.icon:hover:not(:disabled){background:#f2efe6}button:disabled{opacity:.45;cursor:not-allowed}.btn-block{width:100%;text-align:center;display:block}.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px}.h-icon{display:flex;align-items:center;gap:8px}.h-icon svg{color:var(--green)}.btn-block.btn-icon{display:flex}button svg,.btn svg{flex-shrink:0}h1 svg,h2 svg{vertical-align:-.15em}label{font-weight:700;font-size:.82rem;display:block;margin-bottom:4px}input,select,textarea{font:inherit;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid rgba(15,123,74,.2);outline-offset:0;border-color:var(--green)}textarea{min-height:84px;resize:vertical}.field+.field{margin-top:10px}.inline-form{display:flex;gap:8px}.inline-form input{flex:1}.item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.item:last-child{border-bottom:0}.item .title{font-weight:700}.item.done .title{text-decoration:line-through;color:var(--muted)}.check{width:24px;height:24px;flex-shrink:0;border:1px solid var(--muted);border-radius:6px;background:#fff;display:grid;place-items:center;font-size:.9rem;padding:0;box-shadow:none}.check.on{background:var(--green);border-color:var(--green);color:#fff}.empty{text-align:center;color:var(--muted);padding:22px 8px}.center-screen{min-height:100%;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:380px}.hero-logo{font-size:2rem;font-weight:700;letter-spacing:-.5px}.hero-logo span{color:var(--green)}.day-head{position:sticky;top:0;background:var(--paper);padding:8px 0 6px;font-weight:700;z-index:5}.muted-note{color:var(--muted);font-size:.85rem}.admin-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--ink);color:#fff;padding:8px 16px;font-size:.8rem;font-weight:600}.admin-bar b{font-weight:800}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;border-radius:0;background:#fff;color:var(--muted);padding:7px 14px;font-size:.85rem;font-weight:600}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--green);color:#fff}.add-row{display:flex;gap:8px;align-items:stretch}.add-row input{flex:1}.add-row .qty{width:58px;text-align:center}.linkish{background:none;border:0;padding:4px 0;color:var(--green);font-size:.85rem;font-weight:600;text-decoration:underline;align-self:flex-start}.linkish:hover{border:0}.qstep{display:inline-flex;align-items:center;gap:2px}.qstep button{width:28px;height:28px;padding:0;display:grid;place-items:center;border-radius:6px;color:var(--ink)}.qstep b{min-width:22px;text-align:center;font-variant-numeric:tabular-nums}.item .sub{color:var(--muted);font-size:.8rem;margin-top:1px}.item.pending{opacity:.5}.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 16px);transform:translate(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;font-weight:700;font-size:.85rem;z-index:50;box-shadow:var(--shadow)}.wrap{max-width:860px;margin:0 auto;padding:20px 16px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:860px;margin:0 auto;padding:14px 16px;border-bottom:1px solid var(--line)}.topbar .brand{font-weight:700;font-size:1.15rem;letter-spacing:-.5px}.topbar .brand span{color:var(--green)}.back{font-size:.85rem;font-weight:600;text-decoration:none}.crumb{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tabs{display:flex;gap:4px;margin:4px 0 16px;background:#eef2ef;border:1px solid var(--line);border-radius:10px;padding:4px}.tabs button{flex:1;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border-radius:7px;font-size:.85rem;font-weight:600}.tabs button:hover:not(.on){color:var(--ink)}.tabs button.on{background:#fff;color:var(--green);box-shadow:var(--shadow)}.tabs .tab-count{font-size:.7rem;font-weight:700;background:#eef2ef;color:var(--muted);border-radius:999px;padding:0 6px;min-width:18px;text-align:center}.tabs button.on .tab-count{background:#e2f0e9;color:var(--green-dark)}@media (max-width: 560px){.tabs button span:not(.tab-count){display:none}.tabs button{padding:9px 4px}}.grid-assign{width:100%;border-collapse:collapse;font-size:.9rem}.grid-assign th,.grid-assign td{border:1px solid var(--line);padding:6px 8px;text-align:center}.grid-assign th.name-col,.grid-assign td.name-col{text-align:left;white-space:normal}.grid-assign thead th{background:#f2efe6;font-size:.78rem}.grid-assign td button{width:26px;height:26px;padding:0;border-radius:6px;display:grid;place-items:center}.grid-assign td button.on{background:var(--green);border-color:var(--green);color:#fff}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.linkbox{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;background:#f2efe6;border:1px solid var(--line);border-radius:6px;padding:6px 8px;word-break:break-all}.who-dot{display:inline-block;width:12px;height:12px;border-radius:999px;flex-shrink:0}.who{position:relative}.who-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:8px;font-weight:600;text-align:left;min-height:38px}.who-trigger.open{border-color:var(--green);box-shadow:0 0 0 2px #0f7b4a26}.who-trigger .who-caret{margin-left:auto;color:var(--muted);flex-shrink:0}.who-trigger-val{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.who-placeholder{color:var(--muted);font-weight:500}.who-chip{color:#fff;font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:999px;line-height:1.4}.who-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #21302b24;padding:4px;max-height:260px;overflow-y:auto}.who-opt{width:100%;display:flex;align-items:center;gap:9px;padding:8px 9px;border:0;background:transparent;border-radius:7px;font-weight:600;font-size:.88rem;text-align:left}.who-opt:hover{background:#f2efe6}.who-opt.on{font-weight:700}.who-swatch{width:18px;height:18px;border-radius:6px;flex-shrink:0;display:grid;place-items:center}.who-swatch.none{background:repeating-linear-gradient(45deg,#eee,#eee 3px,#f7f7f7 3px,#f7f7f7 6px)}.color-well{width:24px;height:24px;border-radius:7px;flex-shrink:0;cursor:pointer;padding:0;border:1px solid rgba(0,0,0,.15);box-shadow:none}.color-menu{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;right:auto;min-width:190px}.color-swatch{width:30px;height:30px;border-radius:8px;border:0;padding:0;display:grid;place-items:center;cursor:pointer;box-shadow:none}.color-swatch:hover{outline:2px solid var(--ink);outline-offset:1px}.assign-row{padding:12px 0;border-bottom:1px solid var(--line)}.assign-row:last-of-type{border-bottom:0}.assign-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}@media (max-width: 560px){.assign-fields{grid-template-columns:1fr}}.assign-label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#141c1973;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}.modal-panel{background:var(--card);border-radius:14px;width:100%;max-width:420px;box-shadow:0 20px 50px #00000040;animation:pop .12s ease}@keyframes pop{0%{transform:translateY(6px) scale(.98);opacity:0}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:1.05rem}.modal-body{padding:16px}.list-block{margin-top:10px}.list-block:first-child{margin-top:0}.list-block-title{font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--green-dark)}.list-sub{font-weight:700;font-size:.78rem;color:var(--muted);margin:6px 0 2px}.list-block ul,.member-shot ul{margin:2px 0 6px;padding-left:18px}.list-block li{margin:1px 0}.member-shot{background:#fff;border:1px solid var(--line);border-left:5px solid var(--acc);border-radius:10px;padding:16px}.member-shot-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.member-shot-name{font-weight:800;font-size:1.1rem}.member-shot-team{color:var(--muted);font-size:.82rem}@media print{.no-print{display:none!important}body{background:#fff}.wrap{padding:0}.card{break-inside:avoid}}@media (min-width: 780px){:root{--nav-h: 0px}.app-frame{max-width:960px;padding-top:76px}.nav{top:0;bottom:auto;height:60px;padding-bottom:0;border-top:0;border-bottom:1px solid var(--line)}.nav-inner{max-width:960px;padding:0 20px}.nav a{flex:0 0 auto;flex-direction:row;gap:6px;padding:0 14px;font-size:.85rem}.nav .brand{margin-right:auto;font-weight:700;color:var(--ink);font-size:1.1rem}.app-main{padding:24px 20px 40px}}
