.projects-page{padding:130px 4vw 70px;min-height:85vh}.projects-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.projects-heading h1{font-size:clamp(48px,7vw,90px);line-height:1;margin:20px 0 40px}.login-panel{max-width:460px;padding:30px;border:1px solid #18221c30}.projects-page label{display:block;font-size:14px}.projects-page input:not([type=checkbox]),.projects-page textarea,.projects-page select{display:block;width:100%;padding:12px;margin:7px 0 16px;background:#fffdf5;border:1px solid #18221c50;color:#18221c;font:16px Arial}.projects-page button{cursor:pointer;padding:10px 14px;font:14px Arial;border:1px solid #18221c40;background:#f2f0e7;color:#18221c}.projects-page button:disabled{opacity:.45;cursor:wait}.projects-page .btn-primary{background:#182b22;color:#f2f0e7}.board-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:18px 0;border-block:1px solid #18221c30}.board-toolbar select{min-width:200px;margin-bottom:0}.board-toolbar label{margin-right:15px}.board{display:flex;gap:18px;overflow-x:auto;align-items:flex-start;padding:25px 0;min-height:300px}.board-column{flex:0 0 310px;background:#e7e8df;border:1px solid #18221c20;padding:16px;min-height:240px;border-top:3px solid #829e49}.column-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.column-heading h2{font-size:18px;margin:0 0 15px}.column-actions{display:flex;gap:6px;margin-bottom:14px}.column-actions button{font-size:12px;padding:6px}.board-card{background:#fffdf5;border:1px solid #18221c20;padding:17px;margin:12px 0;box-shadow:0 2px 3px #18221c08;touch-action:pan-y}.board-card[draggable=true]{cursor:grab}.card-open{display:block!important;text-align:left!important;width:100%;padding:0!important;border:0!important;background:none!important;font-size:17px!important;line-height:1.4!important;font-weight:600!important;overflow-wrap:anywhere}.card-meta{font-size:12px;color:#526054;margin-top:12px}.card-preview{font-size:13px;line-height:1.5;margin-top:10px;white-space:pre-wrap;overflow-wrap:anywhere}.card-moves{display:flex;gap:5px;margin-top:12px}.card-moves button{padding:5px 8px;font-size:12px}.board-column.drag-over{outline:3px solid #789d30}.board-hint{font-size:13px;color:#526054}.projects-page dialog{width:min(560px,94vw);max-height:90dvh;overflow:auto;background:#f2f0e7;color:#18221c;border:1px solid #18221c50;padding:28px}.projects-page dialog::backdrop{background:#14251e99}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}#message:not(:empty){padding:16px 20px;border-left:4px solid #789d30;background:#e1e9d3;margin:18px 0;white-space:pre-line}.empty-board{padding:35px;border:1px dashed #526054;max-width:700px}.projects-page [hidden]{display:none!important}.projects-page :focus-visible{outline:3px solid #789d30;outline-offset:3px}@media(max-width:600px){.projects-page{padding-top:105px}.projects-heading{align-items:flex-start;flex-direction:column;gap:0}.projects-heading h1{margin-bottom:20px}.projects-heading>a{margin-bottom:25px}.board-column{flex-basis:85vw;max-width:350px}.board-toolbar{gap:8px}.board-toolbar>label:first-child{width:100%}.login-panel{padding:22px}.projects-page dialog{padding:20px}}
/* Align each toolbar row around a common 40px control height. */
.board-toolbar{gap:8px 12px;padding:14px 0}
.board-toolbar>label{display:flex;align-items:center;gap:8px;min-height:40px;margin:0;white-space:nowrap}
.board-toolbar>label:first-child{gap:10px}
.projects-page .board-toolbar select{height:40px;min-width:180px;max-width:260px;margin:0;padding:0 30px 0 12px;line-height:normal}
.board-toolbar>button{height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.board-toolbar input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:#426536}
.board-toolbar>label:has(#show-archived){padding-inline:4px}
.board-hint{margin:8px 0 0;line-height:1.5}
#project-description{margin:12px 0 0}
#project-description:empty{display:none}
.board{gap:14px;padding:16px 0;overflow-y:visible}
.board-column{padding:12px;min-height:170px;position:relative}
.column-heading{margin-bottom:8px}
.column-heading h2{margin:0;font-size:16px;line-height:24px}
.column-heading>span{font:12px Arial;color:#526054}
.column-actions{gap:5px;margin-bottom:10px}
.column-actions button{padding:4px 7px;min-height:26px}
.board-column>button[data-action=add-card]{width:100%;border-color:transparent;background:transparent;text-align:left;padding:7px 4px;font-size:13px}

/* Keep full details in the editor; the board is for scanning and moving work. */
.board-card{position:relative;padding:9px 10px;margin:7px 0;box-shadow:0 1px 2px #18221c0b;transition:box-shadow .12s ease}
.board-card:hover,.board-card:focus-within{border-color:#18221c55;box-shadow:0 2px 6px #18221c12}
.card-top{display:flex;align-items:flex-start;gap:6px;min-height:22px}
.card-open{flex:1;min-width:0;width:auto!important;font-size:14px!important;line-height:1.35!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.projects-page .board-card p{margin:0}
.projects-page .card-preview{margin-top:5px!important;font-size:12px;line-height:1.4;color:#526054;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.card-footer{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:5px;min-height:22px}
.card-meta{font-size:11px;line-height:1.3;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-moves{display:flex;gap:3px;margin:0;flex-shrink:0}
.card-moves button{width:24px;height:22px;padding:0;border-color:transparent;background:transparent;color:#526054;font-size:12px}
.card-moves button:hover,.drag-handle:hover{background:#e7e8df;border-color:#18221c30}
.drag-handle{touch-action:none;cursor:grab;flex:0 0 24px;width:24px;height:24px;padding:0!important;margin:-1px -3px 0 0;border-color:transparent!important;background:transparent!important;font-size:18px!important;line-height:24px;color:#526054!important;user-select:none}
.drag-handle:active{cursor:grabbing}

/* Pointer drags have a real floating preview; native drags use the same card image. */
.projects-page.drag-layer{position:fixed;z-index:10000;padding:0;margin:0;min-height:0;pointer-events:none;user-select:none;transform:rotate(1.5deg);transform-origin:center;filter:drop-shadow(0 12px 16px #14251e40);opacity:.96}
.drag-layer .board-card{margin:0;border-color:#789d30;background:#fffdf5;box-shadow:none}
.drag-source{opacity:.25;outline:1px dashed #789d30}
.dragging-card,.dragging-card *{cursor:grabbing!important;user-select:none!important}
.board-column.drag-over{outline:2px solid #789d30;outline-offset:-2px;background:#e1e8d7}
.board-card.drop-before::before,.board-card.drop-after::after{content:'';position:absolute;left:-2px;right:-2px;height:3px;background:#426536;pointer-events:none;border-radius:2px}
.board-card.drop-before::before{top:-5px}.board-card.drop-after::after{bottom:-5px}
.board-column.drag-over:not(:has(.board-card:not(.drag-source)))::after{content:'Drop card here';display:block;padding:18px 8px;margin-top:7px;border:1px dashed #789d30;color:#426536;font-size:12px;text-align:center;pointer-events:none}
@media(max-width:600px){
 .board-toolbar{gap:8px}.board-toolbar>label:first-child{width:100%}
 .projects-page .board-toolbar select{flex:1;min-width:0;max-width:none;width:auto}
 .board-toolbar>button{flex:0 0 auto}.board-column{padding:10px}
 .card-moves button{width:28px;height:26px}.drag-handle{flex-basis:28px;width:28px;height:28px;line-height:28px}
}
@media(prefers-reduced-motion:reduce){.board-card{transition:none}.projects-page.drag-layer{transform:none}}

/* A compact workspace header keeps the board close to the site navigation. */
/* The board fills the screen; each column owns its vertical scrolling. */
body:has(#workspace:not([hidden])){height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body:has(#workspace:not([hidden]))>.site-header{flex-shrink:0}
body:has(#workspace:not([hidden]))>.site-footer{display:none}
body:has(#workspace:not([hidden]))>.projects-page{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:12px}
.projects-page:has(#workspace:not([hidden]))>.projects-heading,.projects-page>#message{flex-shrink:0}
#workspace:not([hidden]){flex:1;min-height:0;display:flex;flex-direction:column}
#workspace>.board-toolbar,#workspace>#project-description,#workspace>.board-hint{flex-shrink:0}
#workspace>.board{flex:1;min-height:0;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding-bottom:8px}
.board>.board-column{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.board-column>.column-heading,.board-column>.column-actions{flex-shrink:0}
.column-cards{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-gutter:stable;padding:0 4px 4px;touch-action:pan-y}
.column-cards>button[data-action=add-card]{width:100%;border-color:transparent;background:transparent;text-align:left;padding:7px 4px;font-size:13px}
.card-composer{margin:7px 0}
.projects-page .card-composer textarea{margin:0 0 6px;padding:10px;font-size:14px;line-height:1.4;resize:vertical;min-height:82px;background:#fffdf5;border:1px solid #789d30;box-shadow:0 1px 2px #18221c0b}
.composer-actions{display:flex;gap:6px}
.composer-actions button{font-size:13px;padding:7px 10px}
.card-composer p{margin:6px 0 0;font-size:11px;color:#526054;line-height:1.4}
.projects-page{padding:16px 4vw 32px}
.projects-heading{gap:12px;margin-bottom:12px}
.projects-heading h1{font-size:30px;line-height:1.15;margin:0}
.projects-heading>a{font-size:13px;white-space:nowrap}
.board-toolbar{padding:8px 0;gap:6px 10px}
.board-toolbar>label{min-height:34px}
.projects-page .board-toolbar select,.board-toolbar>button{height:34px}
.board-hint{margin:5px 0 0;font-size:12px}
#project-description{margin:6px 0 0;font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
#project-description:empty{display:none}
.board{padding-top:10px}
.card-footer{min-height:0}
.board-card[draggable=true]{touch-action:none}
.board-card[draggable=true] .card-open{cursor:grab}
#message:not(:empty){padding:5px 10px;margin:6px 0;font-size:12px}
@media(max-width:600px){
 .projects-page{padding-top:12px}
 .projects-heading{flex-direction:row;align-items:center;margin-bottom:10px}
 .projects-heading h1{font-size:26px;margin:0}
 .projects-heading>a{margin:0;font-size:12px}
 .board-toolbar{gap:6px}
 .board-toolbar>button{font-size:12px;padding-inline:8px}
 .board-toolbar>label:has(#show-archived){font-size:12px;padding-inline:0;gap:5px}
}
