/* Dorm Hub v29 — quiet blue, neutral surfaces, local assets only. */
:root{--green:hsl(var(--palette-hue, 32) 40.5% 47.5%);--muted:hsl(var(--palette-hue, 32) 14.3% 52.0%);--border:hsl(var(--palette-hue, 32) 27.3% 91.4%);--ink:hsl(var(--palette-hue, 32) 30.4% 22.0%);--accent:hsl(var(--palette-hue, 32) 40.5% 47.5%);--surface:#fff;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:hsl(var(--palette-hue, 32) 33.3% 97.1%);color:var(--ink);font-synthesis:none}
body{background:hsl(var(--palette-hue, 32) 33.3% 97.1%);color:var(--ink);line-height:1.55;-webkit-text-size-adjust:100%}button,input,select,textarea{font-family:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid hsl(var(--palette-hue, 32) 60.0% 82.4%);outline-offset:3px}button:disabled{cursor:default}input,select,textarea{border-color:hsl(var(--palette-hue, 32) 32.1% 89.6%);background:hsl(var(--palette-hue, 32) 60.0% 99.0%);color:var(--ink);border-radius:9px;min-height:44px;box-shadow:none}input:focus,select:focus,textarea:focus{outline:2px solid hsl(var(--palette-hue, 32) 55.9% 88.4%);border-color:hsl(var(--palette-hue, 32) 40.3% 64.5%)}input::placeholder,textarea::placeholder{color:hsl(var(--palette-hue, 32) 15.7% 65.1%)}input:read-only{background:hsl(var(--palette-hue, 32) 33.3% 95.9%)}button:hover:not(:disabled){filter:none}button,a{transition:background-color .16s,border-color .16s,color .16s}h1,h2,h3{letter-spacing:0;font-weight:650}a{color:var(--accent)}
.hub-page>header{max-width:1060px;margin:24px auto 0;padding:24px 28px;background:#fff;border:1px solid var(--border);border-radius:16px;gap:16px;box-shadow:0 3px 12px hsl(var(--palette-hue, 32) 44.4% 24.7% / 0.012)}.hub-page>main{max-width:1060px;padding:24px 0 48px}.hub-page .avatar-button{width:54px;height:54px;border:1px solid hsl(var(--palette-hue, 32) 34.8% 91.0%);background:hsl(var(--palette-hue, 32) 54.5% 95.7%);color:hsl(var(--palette-hue, 32) 31.0% 49.4%);font-size:26px}.hub-page #edit-title{font-size:22px;color:hsl(var(--palette-hue, 32) 30.4% 22.0%);font-weight:650}.hub-page .edit-mark{color:hsl(var(--palette-hue, 32) 18.5% 69.2%);font-size:13px}.hub-page #daily-quote{font-size:12px;color:hsl(var(--palette-hue, 32) 12.6% 54.7%);line-height:1.65}.hub-page #account-settings,.hub-page #switch-account{font-size:12px;padding:8px 12px;min-height:36px;margin:0;border-color:hsl(var(--palette-hue, 32) 27.7% 90.8%);background:hsl(var(--palette-hue, 32) 42.9% 98.6%);color:hsl(var(--palette-hue, 32) 16.3% 46.9%)}.hub-page #exam-countdown{background:hsl(var(--palette-hue, 32) 100.0% 98.6%);border-color:hsl(var(--palette-hue, 32) 46.2% 89.8%);color:hsl(var(--palette-hue, 32) 31.5% 49.8%);border-radius:7px;font-size:10px}.hub-page #exam-countdown strong{font-size:12px;font-weight:600}
.hub-page .duty-card{border:1px solid var(--border);border-radius:14px;padding:20px 24px;margin-bottom:22px;box-shadow:none}.hub-page .duty-label{font-size:11px;color:hsl(var(--palette-hue, 32) 13.0% 59.4%);letter-spacing:.05em}.hub-page .duty-top h2{font-size:21px;color:hsl(var(--palette-hue, 32) 40.5% 47.5%);margin:5px 0 7px}.hub-page .duty-details summary{font-size:12px;color:hsl(var(--palette-hue, 32) 16.4% 55.9%);padding:7px 0}.hub-page .duty-day{background:hsl(var(--palette-hue, 32) 38.5% 97.5%);border-radius:8px;color:hsl(var(--palette-hue, 32) 19.2% 39.8%)}.hub-page .duty-day span{color:hsl(var(--palette-hue, 32) 14.7% 60.0%)}.hub-page .duty-day.is-today{background:hsl(var(--palette-hue, 32) 71.4% 95.9%);box-shadow:inset 0 0 0 1px hsl(var(--palette-hue, 32) 53.3% 88.2%)}.hub-page .feature-grid{gap:12px;grid-template-columns:1fr;margin-top:0}.hub-page .feature-card{padding:21px 24px;gap:17px;border:1px solid var(--border);border-radius:13px;box-shadow:none;background:#fff}.hub-page .feature-card:hover{background:hsl(var(--palette-hue, 32) 100.0% 99.4%);border-color:hsl(var(--palette-hue, 32) 45.0% 84.3%)}.hub-page .feature-card h2{font-size:18px;color:hsl(var(--palette-hue, 32) 28.0% 24.5%)}.hub-page .feature-card p{font-size:12px;color:hsl(var(--palette-hue, 32) 13.7% 60.0%);margin:4px 0 0}.hub-page .feature-symbol,.hub-page .feature-card:nth-child(2) .feature-symbol,.hub-page .feature-card[href="/roulette.html"] .feature-symbol{width:44px;height:44px;border-radius:12px;background:hsl(var(--palette-hue, 32) 54.5% 95.7%);color:hsl(var(--palette-hue, 32) 29.1% 50.8%);font-size:21px}.feature-symbol svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.hub-page .feature-link{font-size:18px;color:hsl(var(--palette-hue, 32) 20.0% 69.6%);margin-left:auto}.hub-page .page-toolbar{margin-bottom:22px;gap:12px}.hub-page .back-link{font-size:13px;color:hsl(var(--palette-hue, 32) 17.4% 52.5%)}.hub-page h1{font-size:24px}.hub-page .outline{background:#fff;color:hsl(var(--palette-hue, 32) 17.9% 43.9%);border-color:hsl(var(--palette-hue, 32) 32.1% 89.6%);border-radius:8px;font-size:13px;padding:9px 13px}.hub-page .primary{background:hsl(var(--palette-hue, 32) 40.5% 47.5%);border-radius:9px;font-size:14px;font-weight:600;padding:12px}.hub-page .primary:hover{background:hsl(var(--palette-hue, 32) 43.2% 43.5%)}.hub-page .cancel{color:hsl(var(--palette-hue, 32) 13.3% 54.3%);font-size:13px}.hub-page .outline.danger{color:#ad5960;border-color:#e9ccd0}.hub-page .primary.danger{background:#b45b63}.hub-page .form-error{border:1px solid #f1dadd;background:#fff4f5;color:#a34a59;border-radius:9px;font-size:13px}
.hub-page form{border-color:var(--border);border-radius:13px;padding:22px;background:#fff}.hub-page label,.hub-page .field-label{color:hsl(var(--palette-hue, 32) 19.0% 40.2%);font-size:13px}.hub-page .field-hint{color:hsl(var(--palette-hue, 32) 13.6% 58.2%);font-size:12px}.hub-page .parcel-scopes{background:hsl(var(--palette-hue, 32) 44.8% 94.3%);border-radius:10px;padding:4px;gap:4px}.hub-page .parcel-scopes button{padding:10px;color:hsl(var(--palette-hue, 32) 13.8% 54.5%);font-size:13px;font-weight:500}.hub-page .parcel-scopes button[aria-pressed="true"]{background:#fff;color:hsl(var(--palette-hue, 32) 41.7% 47.1%);box-shadow:0 1px 4px hsl(var(--palette-hue, 32) 47.2% 28.2% / 0.047);border-radius:7px}.hub-page .stats{gap:20px;padding:10px 0 18px;border-color:var(--border)}.hub-page .stats>div{font-size:12px;color:hsl(var(--palette-hue, 32) 16.7% 57.6%)}.hub-page .stats strong{font-size:22px;color:hsl(var(--palette-hue, 32) 34.5% 46.7%)}.hub-page .tabs{gap:24px}.hub-page .tabs button{font-size:14px;border-bottom-width:2px}.hub-page .tabs span{background:hsl(var(--palette-hue, 32) 61.5% 94.9%);color:hsl(var(--palette-hue, 32) 27.3% 52.5%);font-size:11px}.hub-page .list-head{border-color:var(--border)}.hub-page .list-filters select{font-size:13px}.hub-page .parcel{border-color:var(--border);border-radius:12px;padding:18px;gap:12px;box-shadow:none}.hub-page .ticket{border-left:2px solid hsl(var(--palette-hue, 32) 49.3% 86.1%);padding-left:13px}.hub-page .code{font-size:24px;color:hsl(var(--palette-hue, 32) 31.6% 30.4%);font-weight:650;letter-spacing:.015em}.hub-page .owner{background:hsl(var(--palette-hue, 32) 45.5% 95.7%);color:hsl(var(--palette-hue, 32) 19.0% 52.5%);border-radius:5px;font-size:11px}.hub-page .details{font-size:13px;color:hsl(var(--palette-hue, 32) 15.7% 57.6%)}.hub-page .action{border-color:hsl(var(--palette-hue, 32) 46.4% 89.0%);background:hsl(var(--palette-hue, 32) 64.7% 96.7%);color:hsl(var(--palette-hue, 32) 33.6% 48.4%);border-radius:8px;padding:9px 12px;font-size:12px}.hub-page .edit{color:hsl(var(--palette-hue, 32) 28.9% 55.3%);font-size:12px}.hub-page .done .code{color:hsl(var(--palette-hue, 32) 16.6% 68.0%)}.hub-page .group-title{font-size:13px;color:hsl(var(--palette-hue, 32) 19.0% 50.6%)}.hub-page .pin{color:hsl(var(--palette-hue, 32) 25.8% 63.5%)}.hub-page .share-state{background:hsl(var(--palette-hue, 32) 42.9% 95.9%);color:hsl(var(--palette-hue, 32) 18.9% 56.5%);font-size:11px}.hub-page .share-choice input{accent-color:hsl(var(--palette-hue, 32) 40.5% 47.5%);min-height:17px}.hub-page .fixed-owner{background:hsl(var(--palette-hue, 32) 50.0% 96.9%);border-color:hsl(var(--palette-hue, 32) 32.1% 89.6%);color:hsl(var(--palette-hue, 32) 20.5% 48.8%)}.hub-page .empty{background:hsl(var(--palette-hue, 32) 42.9% 98.6%);border:1px dashed hsl(var(--palette-hue, 32) 34.4% 88.0%);border-radius:12px;color:hsl(var(--palette-hue, 32) 16.3% 55.5%);font-size:13px}.hub-page #code{font-size:20px;min-height:90px}.hub-page .workspace{gap:22px}
.hub-page dialog{border:1px solid hsl(var(--palette-hue, 32) 28.9% 91.2%);border-radius:16px;padding:24px;box-shadow:0 18px 60px hsl(var(--palette-hue, 32) 48.1% 21.2% / 0.122);max-height:90vh;overflow:auto;color:hsl(var(--palette-hue, 32) 28.2% 27.8%)}.hub-page dialog::backdrop{background:hsl(var(--palette-hue, 32) 36.4% 21.6% / 0.4)}.hub-page dialog h2{font-size:19px}.hub-page dialog form{padding:0;border:0;border-radius:0}.hub-page .avatar-preview{background:hsl(var(--palette-hue, 32) 47.4% 96.3%);border-radius:12px}.hub-page #toast{background:hsl(var(--palette-hue, 32) 31.5% 29.2%);border:1px solid #ffffff20;box-shadow:0 4px 20px hsl(var(--palette-hue, 32) 48.1% 21.2% / 0.125);border-radius:10px;font-size:13px}.hub-page .album-heading{font-size:23px}.hub-page .album-tabs a{border-radius:8px;padding:8px 24px;font-size:13px;background:#fff;color:hsl(var(--palette-hue, 32) 17.2% 55.5%)}.hub-page .album-tabs a[aria-current="page"]{color:hsl(var(--palette-hue, 32) 39.8% 46.3%);border-color:hsl(var(--palette-hue, 32) 53.6% 86.5%);background:hsl(var(--palette-hue, 32) 100.0% 96.5%)}.hub-page .photo-grid{gap:13px}.hub-page .photo-card{border-radius:12px;border-color:var(--border)}.hub-page .photo-card>span{font-size:13px;color:hsl(var(--palette-hue, 32) 18.3% 47.1%)}.hub-page .photo-card img,.hub-page .video-cover{background:hsl(var(--palette-hue, 32) 38.5% 94.9%)}.hub-page .video-cover>span{color:hsl(var(--palette-hue, 32) 30.4% 59.4%)}.hub-page #video-jobs{background:#fff;border-color:var(--border)}
.hub-page .table-wrap{border-radius:12px;border-color:var(--border)}.hub-page #schedule-table th{background:hsl(var(--palette-hue, 32) 50.0% 96.1%);color:hsl(var(--palette-hue, 32) 20.3% 48.2%)}.hub-page #schedule-table td{border-color:hsl(var(--palette-hue, 32) 35.3% 93.3%)}.hub-page .course{background:hsl(var(--palette-hue, 32) 64.7% 96.7%);border-left:2px solid hsl(var(--palette-hue, 32) 41.0% 72.7%);border-radius:7px;padding:13px}.hub-page .course-blue{background:hsl(var(--palette-hue, 32) 61.9% 95.9%);border-color:hsl(var(--palette-hue, 32) 43.3% 72.4%)}.hub-page .course-gold{background:#f8f5ed;border-color:#d7c299}.hub-page .course strong{font-size:14px;color:hsl(var(--palette-hue, 32) 30.2% 37.6%)}.hub-page .course span{font-size:12px;color:hsl(var(--palette-hue, 32) 20.0% 56.9%)}.hub-page .course small{font-size:11px;color:hsl(var(--palette-hue, 32) 16.7% 64.7%)}.hub-page .day-section h2{color:hsl(var(--palette-hue, 32) 20.0% 48.0%);font-size:15px}.hub-page .no-course{color:hsl(var(--palette-hue, 32) 15.9% 67.8%);font-size:12px}.hub-page #week{font-size:13px}.hub-page #food-create,.hub-page .food-round{border-radius:13px;border-color:var(--border);padding:22px}.hub-page .food-heading h2{font-size:18px}.hub-page .food-heading>span{color:hsl(var(--palette-hue, 32) 14.3% 60.2%);font-size:12px}.hub-page .food-option{gap:12px}.hub-page .food-option strong{color:hsl(var(--palette-hue, 32) 21.5% 41.0%);font-weight:600;font-size:14px}.hub-page .food-option progress{accent-color:hsl(var(--palette-hue, 32) 39.5% 63.7%);height:6px}.hub-page .food-cooldown{color:#a2875f;font-size:12px}.hub-page .food-add{padding:0;border:0}
/* Keep ledger's compact title badges and permission-driven controls. */
#ledger-view{max-width:850px;color:hsl(var(--palette-hue, 32) 28.2% 27.8%)}#ledger-view .card{border-color:hsl(var(--palette-hue, 32) 33.3% 91.2%);border-radius:13px;box-shadow:none}#ledger-view .plan-summary{padding-top:18px;padding-bottom:18px}#ledger-view .plan-summary h2{font-size:17px;color:hsl(var(--palette-hue, 32) 30.3% 30.4%);font-weight:650}#ledger-view .my-quantity{font-size:inherit;background:hsl(var(--palette-hue, 32) 100.0% 94.7%);color:hsl(var(--palette-hue, 32) 52.7% 39.8%);border-color:hsl(var(--palette-hue, 32) 53.1% 80.8%)}#ledger-view .plan-remark{background:hsl(var(--palette-hue, 32) 60.0% 97.1%);border-left:2px solid hsl(var(--palette-hue, 32) 38.8% 73.7%);border-radius:0 6px 6px 0;color:hsl(var(--palette-hue, 32) 21.0% 51.4%)}#ledger-view .remark-head strong{color:hsl(var(--palette-hue, 32) 21.4% 59.6%)}#ledger-view .freight-compact{color:hsl(var(--palette-hue, 32) 23.6% 54.3%);font-size:11px}#ledger-view .card-head{background:hsl(var(--palette-hue, 32) 100.0% 99.4%)}#ledger-view .switch{background:hsl(var(--palette-hue, 32) 44.8% 94.3%)}#ledger-view .switch button.active{color:hsl(var(--palette-hue, 32) 40.5% 47.5%)}#ledger-view button,.ledger-dialog button{border-radius:8px}#ledger-view .primary,.ledger-dialog .primary{background:hsl(var(--palette-hue, 32) 40.5% 47.5%)}#ledger-view .row{border-color:hsl(var(--palette-hue, 32) 33.3% 94.7%)}#ledger-view .private-line{color:hsl(var(--palette-hue, 32) 20.4% 56.7%)}#ledger-view .total-quantity{background:hsl(var(--palette-hue, 32) 71.4% 95.9%);color:hsl(var(--palette-hue, 32) 32.5% 50.6%);border-color:hsl(var(--palette-hue, 32) 55.1% 90.4%)}.ledger-dialog .note{background:hsl(var(--palette-hue, 32) 57.1% 97.3%);color:hsl(var(--palette-hue, 32) 18.3% 58.2%);font-size:12px}.ledger-dialog .editrow{margin:12px 0}
/* Roulette stays neutral and distinct; no shared game state. */
.roulette-page main{max-width:820px;padding:26px 18px 44px}.roulette-page h1{font-size:28px;color:hsl(var(--palette-hue, 32) 28.2% 27.8%)}.roulette-page button,.roulette-page select{border-radius:9px;border-color:hsl(var(--palette-hue, 32) 32.1% 89.6%);color:hsl(var(--palette-hue, 32) 19.5% 45.3%)}.roulette-page .counts section{border-radius:13px;border-color:hsl(var(--palette-hue, 32) 30.4% 91.0%);box-shadow:none}.roulette-page .counts .live{background:#fff8f6;border-color:#edddd7}.roulette-page .blank{background:hsl(var(--palette-hue, 32) 66.7% 96.5%)}.roulette-page .counter strong{font-weight:600}.roulette-page .counter button{background:white}.roulette-page .shell{border-radius:10px;border-color:hsl(var(--palette-hue, 32) 36.0% 90.2%);box-shadow:none}.roulette-page .shell.live{background:#fff4ef;border-color:#e7c8b8}.roulette-page .shell.blank{background:hsl(var(--palette-hue, 32) 64.7% 96.7%);border-color:hsl(var(--palette-hue, 32) 48.5% 81.0%)}.roulette-page .probability{font-size:14px;color:hsl(var(--palette-hue, 32) 16.5% 49.8%)}.roulette-page .fire-actions button:first-child{background:#f8eae5;color:#986858;border-color:#ead6cd}.roulette-page .fire-actions button:last-child{background:hsl(var(--palette-hue, 32) 63.6% 95.7%);color:hsl(var(--palette-hue, 32) 30.4% 51.6%);border-color:hsl(var(--palette-hue, 32) 48.1% 89.4%)}
@media(max-width:1100px){.hub-page>header{margin:18px 20px 0}.hub-page>main{padding:22px 20px 40px}}
@media(max-width:720px){.hub-page>header{margin:12px 12px 0;padding:18px 16px;gap:10px;border-radius:14px}.hub-page>main{padding:18px 14px 32px}.hub-page .avatar-button{width:46px;height:46px}.hub-page .brand-copy{flex-basis:calc(100% - 58px)}.hub-page #edit-title{font-size:20px}.hub-page #account-settings{margin-left:56px}.hub-page #switch-account{margin-left:0}.hub-page #account-settings,.hub-page #switch-account{font-size:11px;padding:6px 9px;min-height:32px}.hub-page .quote-countdown-row{gap:9px}.hub-page #daily-quote{font-size:11px}.hub-page .duty-card{padding:17px 18px;margin-bottom:17px}.hub-page .duty-top h2{font-size:19px}.hub-page .feature-card{padding:18px;gap:14px}.hub-page .feature-card h2{font-size:17px}.hub-page .feature-card p{font-size:11px}.hub-page .feature-symbol{width:41px;height:41px}.hub-page .feature-grid{gap:10px}.hub-page .stats{gap:10px}.hub-page .stats strong{font-size:21px}.hub-page .parcel{padding:15px}.hub-page .photo-grid{gap:10px}.hub-page form{padding:18px}.hub-page dialog{padding:21px;max-height:88vh}.hub-page .workspace{gap:18px}.hub-page .food-heading{gap:6px}#ledger-view .card-foot{padding:14px 16px}#ledger-view .plan-summary h2{font-size:17px}#ledger-view .my-quantity{font-size:inherit}.roulette-page h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

:root{--palette-hue:32}html[data-palette="blue"]{--palette-hue:218}html[data-palette="green"]{--palette-hue:153}html[data-palette="apricot"]{--palette-hue:32}html[data-palette="rose"]{--palette-hue:345}html[data-palette="purple"]{--palette-hue:265}
/* Compact homepage, with full-width legible rows and comfortable tap targets. */
.hub-page>header{padding:18px 22px;margin-top:18px}.hub-page .feature-grid{gap:8px}.hub-page .feature-card{padding:13px 18px;gap:13px;border-radius:11px}.hub-page .feature-card h2{font-size:16px}.hub-page .feature-card p{margin-top:2px;font-size:11px}.hub-page .feature-symbol,.hub-page .feature-card:nth-child(2) .feature-symbol,.hub-page .feature-card[href="/roulette.html"] .feature-symbol{width:36px;height:36px;border-radius:10px}.feature-symbol svg{width:21px;height:21px}.hub-page .duty-card{padding:14px 18px;margin-bottom:14px}.hub-page .duty-top h2{margin:3px 0 4px;font-size:19px}.hub-page .duty-details summary{padding:4px 0}.hub-page #palette-open{font-size:12px;padding:8px 12px;min-height:36px}.palette-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.palette-choice{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:9px;padding:13px;background:white;color:var(--ink)}.palette-choice[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:1px}.palette-dot{width:20px;height:20px;border-radius:50%;border:1px solid #00000012}.palette-dot[data-color="blue"]{background:#7596d0}.palette-dot[data-color="green"]{background:#6ca58b}.palette-dot[data-color="apricot"]{background:#d4a16c}.palette-dot[data-color="rose"]{background:#c88598}.palette-dot[data-color="purple"]{background:#a08ac6}.parcel .pickup-cooling{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px;padding:6px 9px;border:1px solid #ead9c3;border-radius:7px;background:#fff5e9;color:#9c7548;font-size:11px}.pickup-countdown{font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.035em;font-weight:600}.pickup-cooling small{font-size:10px;color:#aa8a67}
@media(max-width:720px){.hub-page>header{margin:10px 12px 0;padding:15px 14px}.hub-page>main{padding-top:14px}.hub-page .feature-card{padding:12px 15px}.hub-page .feature-card h2{font-size:16px}.hub-page .feature-grid{gap:8px}.hub-page .duty-card{padding:13px 15px}.hub-page #palette-open{padding:6px 9px;font-size:11px;min-height:32px}.hub-page #account-settings{margin-left:0}.hub-page .duty-top h2{font-size:18px}}

/* v31: one compact duty summary, expanded only on request. */
.hub-page .duty-card{padding:0;margin-bottom:12px;border-radius:11px}.hub-page .duty-details .duty-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:13px 17px;list-style:none;align-items:center;cursor:pointer}.hub-page .duty-summary::-webkit-details-marker{display:none}.hub-page .duty-inline{display:flex;align-items:baseline;gap:12px;min-width:0}.hub-page .duty-inline .duty-label{font-size:11px;white-space:nowrap;letter-spacing:0}.hub-page #duty-person{font-size:16px;line-height:1.5;color:var(--accent);font-weight:650;overflow-wrap:anywhere}.hub-page .duty-toggle{font-size:11px;color:var(--muted);white-space:nowrap;grid-column:2;grid-row:1/3;display:flex;align-items:center;gap:5px}.hub-page .duty-chevron{display:inline-block;transition:transform .16s;font-size:15px}.hub-page .duty-details[open] .duty-chevron{transform:rotate(180deg)}.hub-page #duty-date{font-size:10px;line-height:1.4;min-height:0;margin:0;grid-column:1;color:var(--muted)}.hub-page .duty-details>.duty-week{margin:0 16px 12px;border-top:1px solid var(--border);padding-top:12px}.hub-page .duty-details>p{margin:0 16px 13px;font-size:11px}.hub-page #duty-error{margin:0 16px 12px}@media(max-width:400px){.hub-page .duty-details .duty-summary{padding:11px 13px;column-gap:8px}.hub-page .duty-inline{gap:8px}.hub-page #duty-person{font-size:15px}.hub-page .duty-toggle{font-size:10px}}

/* v32: paired palettes, quiet surfaces, consistent action colors. */
:root{--support-hue:188;--ok-bg:#edf6f0;--ok-ink:#286046;--ok-line:#c9dfd0;--edit-bg:#eef3fa;--edit-ink:#385b83;--edit-line:#cedbea;--undo-bg:#fff3e5;--undo-ink:#89551c;--undo-line:#ebd5b7;--danger-bg:#fff0f1;--danger-ink:#9c3c4c;--danger-line:#ebcbd1;--accent:hsl(var(--palette-hue) 38% 36%);--green:var(--accent)}
html[data-palette="blue"]{--palette-hue:218;--support-hue:32}
.palette-dot[data-color="blue"]{background:linear-gradient(135deg,hsl(218 39% 59%) 0 50%,hsl(32 32% 76%) 50% 100%)}
html[data-palette="green"]{--palette-hue:153;--support-hue:32}
.palette-dot[data-color="green"]{background:linear-gradient(135deg,hsl(153 39% 59%) 0 50%,hsl(32 32% 76%) 50% 100%)}
html[data-palette="apricot"]{--palette-hue:32;--support-hue:188}
.palette-dot[data-color="apricot"]{background:linear-gradient(135deg,hsl(32 39% 59%) 0 50%,hsl(188 32% 76%) 50% 100%)}
html[data-palette="rose"]{--palette-hue:345;--support-hue:168}
.palette-dot[data-color="rose"]{background:linear-gradient(135deg,hsl(345 39% 59%) 0 50%,hsl(168 32% 76%) 50% 100%)}
html[data-palette="purple"]{--palette-hue:265;--support-hue:38}
.palette-dot[data-color="purple"]{background:linear-gradient(135deg,hsl(265 39% 59%) 0 50%,hsl(38 32% 76%) 50% 100%)}
html[data-palette="sea"]{--palette-hue:185;--support-hue:24}
.palette-dot[data-color="sea"]{background:linear-gradient(135deg,hsl(185 39% 59%) 0 50%,hsl(24 32% 76%) 50% 100%)}
html[data-palette="coffee"]{--palette-hue:26;--support-hue:155}
.palette-dot[data-color="coffee"]{background:linear-gradient(135deg,hsl(26 39% 59%) 0 50%,hsl(155 32% 76%) 50% 100%)}
html[data-palette="peach"]{--palette-hue:15;--support-hue:170}
.palette-dot[data-color="peach"]{background:linear-gradient(135deg,hsl(15 39% 59%) 0 50%,hsl(170 32% 76%) 50% 100%)}
html[data-palette="olive"]{--palette-hue:83;--support-hue:28}
.palette-dot[data-color="olive"]{background:linear-gradient(135deg,hsl(83 39% 59%) 0 50%,hsl(28 32% 76%) 50% 100%)}
html[data-palette="indigo"]{--palette-hue:235;--support-hue:35}
.palette-dot[data-color="indigo"]{background:linear-gradient(135deg,hsl(235 39% 59%) 0 50%,hsl(35 32% 76%) 50% 100%)}

.hub-page .primary,#ledger-view .primary,.ledger-dialog .primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.hub-page .primary:hover:not(:disabled){background:hsl(var(--palette-hue) 38% 30%)}
.hub-page .feature-card .feature-symbol{background:#edf5f1;color:#36735a}
.hub-page .feature-card:nth-child(2) .feature-symbol{background:#edf2fb;color:#496891}
.hub-page .feature-card:nth-child(3) .feature-symbol{background:#f8edf2;color:#97627b}
.hub-page .feature-card:nth-child(4) .feature-symbol{background:#fff3e2;color:#936828}
.hub-page .feature-card[href="/roulette.html"] .feature-symbol{background:#edf0f4;color:#5c687b}
.hub-page .feature-card:nth-child(6) .feature-symbol{background:#f2eef9;color:#796296}
#ledger-view .my-quantity{background:hsl(var(--support-hue) 55% 94%);color:hsl(var(--support-hue) 45% 30%);border-color:hsl(var(--support-hue) 33% 76%)}
.hub-page .owner,.hub-page .share-state{background:hsl(var(--support-hue) 35% 95%);color:hsl(var(--support-hue) 28% 34%)}
#ledger-view button[data-action="ship"],#ledger-view button[data-action="member"],#ledger-view button[data-action="close"],.hub-page .parcel button[data-action="toggle"]{background:var(--ok-bg);color:var(--ok-ink);border:1px solid var(--ok-line)}
#ledger-view button[data-action="edit"],#ledger-view button[data-action="note"],#ledger-view button[data-action="freight"],.hub-page .parcel button[data-action="edit"],.hub-page .parcel button[data-action="share"],.hub-page #share-selected,.hub-page #share-all{background:var(--edit-bg);color:var(--edit-ink);border:1px solid var(--edit-line)}
.hub-page .parcel button[data-action="edit"]{border-radius:7px;padding:5px 9px}
#ledger-view button[data-intent="undo"],#ledger-view button[data-action="restore"],.hub-page .parcel.done button[data-action="toggle"],.hub-page .parcel button[data-action="unshare"]{background:var(--undo-bg);color:var(--undo-ink);border:1px solid var(--undo-line)}
#ledger-view button[data-action="copy"]{background:#f5f6f8;color:#566172;border-color:#dce1e7}
.hub-page button.outline.danger{background:var(--danger-bg);color:var(--danger-ink);border-color:var(--danger-line)}
.hub-page button.primary.danger{background:var(--danger-ink);border-color:var(--danger-ink);color:white}
#ledger-view .ship-status.sent,#ledger-view .pill.paid{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}
#ledger-view .total-quantity{background:hsl(var(--support-hue) 40% 94%);color:hsl(var(--support-hue) 35% 32%);border-color:hsl(var(--support-hue) 30% 82%)}
.hub-page .course{background:#eef6f1;border-color:#92b7a2}.hub-page .course-blue{background:#edf3fb;border-color:#96afcf}.hub-page .course-gold{background:#faf3e7;border-color:#d3b780}
.palette-dot{flex-shrink:0;width:24px;height:24px}.palette-choice{min-height:48px;font-size:13px}.palette-choice[aria-pressed="true"]{background:hsl(var(--palette-hue) 35% 97%)}
.hub-page button:disabled,#ledger-view button:disabled{opacity:.45;cursor:not-allowed}
