:root{--ink:#17364c;--muted:#667a89;--blue:#235f85;--pale:#eef5f8;--line:#dce5e9;--green:#28845d;--yellow:#b48b12;--orange:#db8030;--red:#cc5362;--purple:#8656b3;--child:#3c88c5;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f5f7f9;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:10px 14px;display:inline-flex;gap:7px;justify-content:center;align-items:center;text-decoration:none;line-height:1.25;font-weight:550}button:hover,.button:hover{background:#edf4f8;border-color:#a4bfce}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #72afd2;outline-offset:3px}.primary{background:var(--blue);border-color:var(--blue);color:white}.primary:hover{background:#184a6a;color:white}.danger{color:#a13240;border-color:#eac6cb;background:#fff8f8}.quiet{border-color:transparent;background:transparent}input,select{background:#fff;border:1px solid #cddae0;border-radius:8px;min-height:43px;padding:10px 12px;color:var(--ink);width:100%}input[type=checkbox]{min-height:20px;width:20px;height:20px;accent-color:var(--blue);flex-shrink:0}label{display:grid;gap:7px;font-weight:550;margin:14px 0}h1,h2,h3,h4,p{margin-top:0}h1{font-size:34px;letter-spacing:-1.1px;margin-bottom:8px}h2{font-size:20px;letter-spacing:-.4px}h3{font-size:18px}p{line-height:1.6}small{display:block;color:var(--muted);font-size:12px}b{font-weight:650}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.5px;color:var(--muted);display:block;margin-bottom:8px}.app-header{background:#fff;border-bottom:1px solid var(--line);padding:17px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:21px;font-weight:700;text-decoration:none}.brand small{font-size:11px;font-weight:450;letter-spacing:.2px;margin-top:3px}.brand-mark{background:var(--ink);width:41px;height:44px;display:grid;place-items:center;border-radius:11px;color:white;font-size:26px;font-weight:500}.header-right{display:flex;align-items:center;gap:8px}.sync{color:#3d7b63;font-size:11px;margin-right:12px;max-width:200px}.sync:before{content:'●';margin-right:5px}.workspace{padding:32px;max-width:2200px;margin:auto}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-title p{color:var(--muted);margin:0;font-size:14px}.toolbar{display:flex;justify-content:space-between;gap:14px;background:#fff;padding:16px;border-radius:12px;border:1px solid var(--line);align-items:center}.plan-picker{display:flex;gap:8px;align-items:center}.plan-picker label{font-size:12px;color:var(--muted);margin:0 6px 0 0}.plan-picker select{width:240px}.toolbar-actions{display:flex;gap:8px}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:22px 0}.tabs button{border:0;border-radius:0;background:transparent;padding:13px 5px;color:var(--muted);border-bottom:3px solid transparent}.tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.board-tools,.section-tools{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.board-tools .search{margin-right:auto}.search{margin:0;flex-basis:290px}.search input{background:#fff}.check{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.hint{font-size:12px;color:var(--muted);margin-bottom:16px}.legend{display:flex;gap:17px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:20px}.legend span,.level-label{display:inline-flex;align-items:center;gap:7px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle;flex-shrink:0;background:var(--color);margin-right:3px}.l1{--color:var(--green)}.l2{--color:var(--yellow)}.l3{--color:var(--orange)}.l4{--color:var(--red)}.l5{--color:var(--purple)}.l6{--color:var(--child)}.board{display:flex;align-items:stretch;gap:17px;overflow-x:auto;padding:2px 2px 20px;min-height:420px;scrollbar-color:#b9cbd5 #eaf0f4}.group-column{flex:0 0 305px;min-width:0;background:#edf2f5;border:1px solid #dae4ea;border-radius:13px;display:flex;flex-direction:column;transition:background .15s;overflow:hidden}.group-column.unassigned{background:#f0efec;border-color:#e2e0db;flex-basis:285px}.column-heading{padding:18px 15px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.column-heading h2{margin:0;font-size:19px}.column-heading .eyebrow{font-size:9px;margin-bottom:5px}.column-heading button{border:0;background:transparent;padding:7px}.stats{font-size:11px;border:1px solid #d6e1e7;background:#f9fbfc;border-radius:8px;padding:10px;margin:0 12px 12px}.stat-main{display:flex;gap:16px;padding-bottom:8px;border-bottom:1px solid #e0e7ec}.stat-main b{font-size:17px;margin-right:3px}.stat-tags,.stat-levels{display:flex;gap:15px;margin-top:8px;align-items:center}.stat-tags span{color:var(--muted)}.stat-tags b{color:var(--ink);margin-left:4px}.level-count{display:inline-flex;gap:2px;align-items:center}.role-summary{font-size:11px;color:var(--muted);line-height:1.6;padding:0 15px 12px}.missing{color:#9b6540}.cards{padding:0 10px 10px;min-height:140px;flex:1}.person-card{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #dfe6ea;border-left:4px solid var(--color);border-radius:8px;padding:10px 7px 10px 0;margin:0 0 7px;box-shadow:0 2px 3px #17364c04;min-height:76px}.grip{touch-action:none;cursor:grab;user-select:none;border:0;background:none;padding:8px 4px;color:#99a9b4;min-width:28px;min-height:44px;font-size:23px;align-self:stretch}.grip:hover{background:#f0f5f8;border:0}.person-info{flex:1;min-width:0}.name-button{padding:0;border:0;background:transparent;font-size:13px;display:block;text-align:left;line-height:1.4;overflow-wrap:anywhere;font-weight:650}.name-button:hover{background:none;color:var(--blue);text-decoration:underline}.person-meta{display:flex;align-items:center;gap:4px;margin-top:4px;flex-wrap:wrap;min-height:13px}.tag,.role{font-size:9px;line-height:1;padding:4px 5px;border-radius:4px;background:#f0f3f6;font-weight:650;display:inline-block}.role{background:#deebf4;color:#215677}.family-label{font-size:10px;color:var(--muted);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-text{color:var(--muted);font-size:9px;display:block;margin-top:5px}.move-button{border:0;background:none;padding:8px;color:#7b91a1;min-height:38px}.column-empty{color:var(--muted);padding:24px 9px;font-size:12px;text-align:center}.drop-active{background:#d9eaf4!important;outline:2px solid #3983b3;outline-offset:-2px}.drag-ghost{position:fixed;width:275px;pointer-events:none;z-index:9999;box-shadow:0 10px 30px #0d2c4c35;opacity:.93;transform:rotate(2deg)}.is-dragging,.is-dragging *{cursor:grabbing!important;user-select:none}.empty{padding:60px 25px;text-align:center;border:1px dashed #bdcfd9;border-radius:12px;background:#fff}.empty p{color:var(--muted)}.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:25px}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{background:#f0f5f8;color:var(--muted);font-size:11px;font-weight:650}th,td{padding:12px 15px;border-bottom:1px solid #e7edf1}tr:last-child td{border-bottom:0}td button{padding:7px 11px}.muted{color:var(--muted);font-size:13px}.section-tools p{margin:0 auto 0 0}.family-grid,.comparison-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}.family-card,.comparison-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.family-card p{font-size:13px;color:var(--muted);min-height:35px}.comparison-card h4{font-size:13px;margin:12px 0}.comparison-card p{font-size:12px}.comparison-card .stats{margin:0 0 18px}.auth-page{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:25px;background:radial-gradient(ellipse at 10% 10%,#e1edf5,transparent 65%),#f5f7f9}.auth-card{max-width:440px;width:100%;padding:36px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 20px 80px #17364c0c;margin:8vh auto}.auth-page .auth-card{margin:0}.auth-card h1{font-size:27px}.auth-card p{font-size:13px;color:var(--muted)}.auth-card form .primary{width:100%;margin-top:10px}.error{color:#ad3346!important;font-size:13px;white-space:pre-line}dialog{border:1px solid var(--line);border-radius:16px;padding:24px;max-width:590px;width:calc(100% - 30px);max-height:90dvh;overflow:auto;color:var(--ink);box-shadow:0 25px 90px #102c4c30}dialog::backdrop{background:#102b4590;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-heading h2{margin:0}.dialog-heading button{border:0;font-size:25px;padding:5px 9px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}fieldset{border:1px solid var(--line);border-radius:9px;margin:16px 0;padding:12px}legend{font-size:13px;padding:0 7px}.tag-options{display:flex;gap:22px}.tag-options label{margin:0}.menu-buttons{display:grid;gap:10px;margin-top:20px}.user-list{display:grid;gap:12px;margin:20px 0}.user-list>div{border-bottom:1px solid var(--line);padding-bottom:12px}.user-list small{margin:6px 0 10px}.user-list button{font-size:12px;padding:8px;margin-right:5px}.import-preview{max-height:45vh;overflow:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);z-index:10000;max-width:calc(100% - 30px);padding:14px 20px;border-radius:10px;background:#183e5c;color:white;box-shadow:0 5px 30px #19364c25;font-size:13px;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#toast.error{background:#8e2d40;color:white!important}#print-area{display:none}
@media(max-width:850px){.app-header{padding:14px 18px;flex-wrap:wrap}.header-right{flex-wrap:wrap}.sync{order:3;flex-basis:100%;max-width:none}.workspace{padding:22px 16px}.page-title h1{font-size:29px}.page-title p{max-width:320px;font-size:12px}.toolbar{align-items:stretch;flex-direction:column}.plan-picker{flex-wrap:wrap}.plan-picker select{flex:1;min-width:150px}.toolbar-actions{justify-content:flex-end}.board-tools .search{flex-basis:100%}.tabs{gap:17px}.tabs button{font-size:13px}.board-tools button{padding:10px}.legend{gap:10px}.group-column{flex-basis:290px}.page-title>.primary{font-size:12px;white-space:nowrap}.brand{font-size:19px}.header-right button{padding:8px 10px;font-size:12px}.stat-tags{gap:12px}}
@media print{@page{size:A4 portrait;margin:12mm}body{background:white;color:#000;font-size:10pt}#app,#modal,#toast{display:none!important}#print-area{display:block}.print-groups{display:block}.print-group{break-inside:avoid;margin:0 0 9mm;border:1px solid #b8c4ca;padding:4mm}.print-group h2{font-size:15pt;margin:0 0 3mm}#print-area h1{font-size:21pt;letter-spacing:0}#print-area table{font-size:9pt}#print-area th,#print-area td{padding:2mm 2.5mm}#print-area .stats{margin:0 0 3mm;padding:2mm;background:white}#print-area .stat-main,#print-area .stat-tags,#print-area .stat-levels{display:inline-flex;margin:0 6mm 0 0;border:0;padding:0}#print-area .stat-main b{font-size:11pt}#print-area .stats span{color:#000}#print-area small{font-size:7.5pt;color:#555}#print-area .dot{print-color-adjust:exact;-webkit-print-color-adjust:exact}#print-area td .dot{margin-right:2mm}thead{display:table-header-group}tr{break-inside:avoid}h1,h2{break-after:avoid}}

/* Keep absolutely positioned accessibility labels inside the scrolling board. */
.board{position:relative}

@media print{:root{background:#fff}}


.dialog-actions{flex-wrap:wrap}

.board-scrollbar{position:sticky;top:0;z-index:5;height:24px;overflow-x:scroll;overflow-y:hidden;background:#eef5f8;scrollbar-color:#6b8da3 #e0e9ef;scrollbar-width:auto;margin-bottom:10px;border-radius:5px}
.board-scrollbar[hidden]{display:none}
.board-scrollbar>div{height:1px}
.board-scrollbar::-webkit-scrollbar{height:16px}
.board-scrollbar::-webkit-scrollbar-track{background:#e0e9ef;border-radius:5px}
.board-scrollbar::-webkit-scrollbar-thumb{background:#6b8da3;border-radius:5px;border:3px solid #e0e9ef}
.board-scrollbar:focus-visible,.board:focus-visible{outline:3px solid #72afd2;outline-offset:2px}

.board-sort{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}.board-sort select{width:145px}
