:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,sans-serif;background:#0b0b0b;color:#f1ede5}*{box-sizing:border-box}body{margin:0}.wrap{max-width:1000px;margin:auto;padding:24px 18px 70px}header{display:flex;justify-content:space-between;gap:12px;margin-bottom:28px}a{color:#e9c35b;text-decoration:none}h1{color:#e9c35b;font-size:32px;margin:0}h2{font-size:19px;margin:0}h3{font-size:16px;margin:0}.muted,small{color:#aaa49a}.muted{margin:6px 0 26px}button{font:inherit;cursor:pointer;border:1px solid #92783d;border-radius:9px;padding:10px 14px;background:#d7ad4e;color:#15120d;font-weight:650}button.secondary{background:transparent;color:#e9c35b}button:disabled{opacity:.5;cursor:default}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.stats>div{background:#1c1c1c;border:1px solid #4b4030;border-radius:12px;padding:16px}.stats strong{display:block;color:#e9c35b;font-size:27px}.stats small{display:block;font-size:12px}.tabs,.picker{display:flex;gap:7px;margin:20px 0;flex-wrap:wrap}.tabs button,.picker button{background:#1b1b1b;color:#d0c8b8;flex:1;min-width:110px}.tabs button.active,.picker button.active{background:#4a381b;border-color:#e9c35b;color:#ffe2a0}.heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 12px}.panel{background:#171717;border:1px solid #50432d;border-radius:15px;padding:18px;margin:16px 0}.pill{border:1px solid #5c4e32;border-radius:20px;padding:5px 10px;font-size:12px;color:#dfc78d}.positions{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:10px}.position{display:block;text-align:left;min-width:0;background:#222;border:1px solid #56482e;border-radius:12px;padding:12px;color:#f3eee5}.position.selected{border-color:#e9c35b;background:#352b1c}.position .code{display:block;color:#e9c35b;font-size:11px;margin-bottom:12px}.position .name{display:block;font-weight:650;overflow-wrap:anywhere}.position .size{display:block;color:#aaa49a;font-size:11px;margin-top:6px}.signals{border-top:1px solid #413a2f;display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:10px;font-size:11px}.good{color:#93c5a4}.due{color:#e6b86a}.neutral{color:#aaa49a}.foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;color:#aaa49a;font-size:12px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}label{display:block;margin:14px 0;color:#d9c9a7;font-size:13px}input,select,textarea{display:block;width:100%;margin-top:6px;border:1px solid #5b4d34;border-radius:9px;padding:11px;background:#232323;color:#f1ede5;font:inherit}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.info{display:flex;flex-wrap:wrap;gap:12px;color:#c9c1b3;font-size:13px;margin:14px 0}.status{margin-top:10px;color:#aaa49a}.empty{color:#a9a197}.warning{color:#e6b86a}[hidden]{display:none!important}@media(max-width:500px){.wrap{padding:18px 12px 50px}.stats>div{padding:11px}.stats strong{font-size:23px}.stats small{font-size:10px}.panel{padding:12px}.position{padding:10px}.signals{gap:6px;font-size:10px}.heading button{font-size:12px}.positions{gap:7px}}
.actions a{display:inline-flex;align-items:center;padding:10px;color:#e9c35b;border:1px solid #92783d;border-radius:9px;font-size:13px}

/* V20: streamlined rack positions and enclosure editor */
.position{min-height:155px;display:flex;flex-direction:column;justify-content:center;transition:border-color .15s,background .15s}
.position .code{margin-bottom:14px}.position .name{font-size:clamp(13px,2.5vw,19px);line-height:1.3}.position .size{line-height:1.4}.signals{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.foot span{line-height:1.7}.dimension-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dimension-grid label{min-width:0}.dimension-grid input{min-width:0}.dimension-hint{margin:16px 0 0;font-size:13px;font-weight:650;color:#f0d38c}.slot-hint{background:#25221b;color:#dfc78d;padding:12px;border-radius:10px;border:1px solid #55462c;font-size:13px}
@media(max-width:500px){.position{min-height:155px}.position .code{margin-bottom:10px}.signals{font-size:10px}.dimension-grid{gap:6px}.dimension-grid label{font-size:11px}.dimension-grid input{padding:9px 5px}}

/* V21: consistent vector activity icons and legend */
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}
.rack-icon{width:14px;height:14px;display:inline-block;vertical-align:-2px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.legend>span{display:inline-flex;align-items:center;gap:5px}

/* V23: consistent editor actions across rack and enclosure editing */
#editorForm .actions{align-items:center;gap:10px}
#editorForm .actions button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
#editorForm .actions .primary-action{background:#d7ad4e;color:#15120d;border-color:#92783d}
#editorForm .actions .delete-link{margin-left:auto;background:transparent;border:0;color:#e66a6a;padding:10px 4px;font-weight:600;gap:6px}
#editorForm .actions .delete-link:hover{color:#ff9090;text-decoration:underline}
#editorForm .actions .delete-link:focus-visible{outline:2px solid #e66a6a;outline-offset:3px}
#editorForm .actions .delete-link .rack-icon{width:17px;height:17px}
@media(max-width:500px){#editorForm .actions{gap:8px}#editorForm .actions button{font-size:13px;padding:10px 11px}#editorForm .actions .delete-link{padding:10px 2px}}

/* V33: cleaning due (orange) is distinct from feeding due (yellow/gold). */
.cleaning-due{color:#f59e0b}

/* V62 module navigation typography */
main.wrap > header > a{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:13px;font-weight:400;line-height:1.45;color:#e7bd55;text-decoration:none;}
