:root{--bg:#f6f3ed;--paper:#fffefa;--ink:#302d27;--muted:#716b61;--line:#ded9cf;--accent:#b54c35;--soft:#ede6d9;--good:#38664e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 15px;border-radius:8px;text-decoration:none;cursor:pointer}button:hover,.button:hover{border-color:var(--muted)}button:focus-visible,.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.primary{background:var(--accent);border-color:var(--accent);color:white}.primary:hover{background:#963b28;color:white}.danger{color:#a4322b;margin-right:auto}button:disabled{opacity:.6;cursor:wait}header{max-width:1280px;margin:auto;padding:28px 40px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{font-size:30px;font-weight:700;letter-spacing:-1.5px}.brand span{display:block;font-size:10px;letter-spacing:2px;font-weight:400}.header-actions{display:flex;gap:8px;flex-wrap:wrap}main{max-width:1280px;margin:auto;padding:0 40px}.intro{display:flex;justify-content:space-between;align-items:center;padding:48px 0 35px;gap:30px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--accent);font-weight:700}h1{font:52px/1.05 Georgia,serif;letter-spacing:-1.5px;margin:18px 0}p{color:var(--muted);margin:6px 0}.intro p{max-width:510px;font-size:16px}.intro-detail{display:grid;gap:12px;color:var(--muted);padding-left:25px;border-left:1px solid var(--line)}.storage{display:flex;gap:15px;flex-wrap:wrap;justify-content:space-between;background:var(--soft);padding:10px 14px;border-radius:8px;font-size:12px}.storage #save-state{font-weight:700;color:var(--good)}nav{display:flex;gap:25px;margin:27px 0 30px;border-bottom:1px solid var(--line);overflow:auto}nav button{border:0;background:transparent;border-radius:0;padding:14px 0;white-space:nowrap;color:var(--muted);border-bottom:3px solid transparent}nav button.active{border-bottom-color:var(--accent);color:var(--accent)}[hidden]{display:none!important}.section-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}h2{font:30px/1.15 Georgia,serif;margin:0 0 8px}h3{font-size:16px;margin:0 0 6px}.building{display:grid;gap:14px}.floor{display:grid;grid-template-columns:165px 1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper)}.floor-label{padding:22px;background:var(--soft)}.floor-number{font:38px/1.1 Georgia,serif}.floor-label p{font-size:12px}.floor-spaces{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px;padding:18px}.space{display:block;text-align:left;padding:14px;background:transparent}.space h3{font-size:15px}.space p{font-size:12px}.tag{display:inline-block;padding:3px 8px;border-radius:4px;background:var(--soft);font-size:11px;color:var(--muted);margin:0 0 10px}.decision{padding:22px 0;border-bottom:1px solid var(--line);margin-top:12px}.decision p{max-width:900px}.progress-row{display:flex;gap:20px;align-items:center;margin-bottom:24px;flex-wrap:wrap}progress{height:9px;max-width:400px;flex:1;accent-color:var(--good)}.filters{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.filters label{min-width:190px}label{display:block;font-size:13px;color:var(--muted)}input:not([type=checkbox]),select,textarea{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:7px;padding:10px 11px;background:var(--paper);color:var(--ink)}textarea{resize:vertical;min-height:90px}.task{display:grid;grid-template-columns:28px 1fr auto;gap:14px;align-items:start;background:var(--paper);padding:18px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px}.task input{width:19px;height:19px;margin:3px 0;accent-color:var(--good)}.task.done h3{text-decoration:line-through;color:var(--muted)}.task-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted)}.task-note{font-size:13px;white-space:pre-wrap;margin-top:9px}.edit{padding:7px 11px;font-size:12px}.vendor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}.vendor{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.vendor p{font-size:13px;white-space:pre-wrap}.vendor-bottom{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:18px}.vendor .contact{margin-top:12px;color:var(--ink);overflow-wrap:anywhere}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.gallery-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.image-button{padding:0;border:0;border-radius:0;width:100%;display:block;background:var(--soft)}.image-button img{width:100%;height:210px;object-fit:cover;display:block}.gallery-caption{padding:16px}.gallery-caption h3{overflow-wrap:anywhere}.gallery-caption p{font-size:12px}.empty{grid-column:1/-1;padding:45px 20px;border:1px dashed var(--line);border-radius:12px;text-align:center}.empty h3{font:24px Georgia,serif}.empty p{max-width:500px;margin:12px auto 18px}footer{padding:35px 0;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px}footer span{max-width:540px}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:15px;padding:24px;width:620px;max-width:calc(100vw - 28px);max-height:90vh;overflow:auto}dialog::backdrop{background:#211d1780}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:20px}.icon{padding:0;width:34px;height:34px;font-size:24px;flex-shrink:0}.fields{display:grid;gap:16px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}#form-error{color:#a4322b;font-size:13px}#image-view{width:950px}#full-image{width:100%;max-height:65vh;object-fit:contain}#image-caption{white-space:pre-wrap;margin:12px 0}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);border-radius:8px;background:var(--ink);color:white;padding:12px 20px;z-index:5;font-size:13px}.hint{font-size:12px;color:var(--muted)}@media(max-width:750px){header{padding:20px;align-items:start}.brand{font-size:26px}.header-actions{justify-content:flex-end;max-width:200px}.header-actions button,.header-actions .button{font-size:11px;padding:7px 9px}main{padding:0 20px}.intro{padding:35px 0 25px;align-items:start}.intro-detail{display:none}h1{font-size:42px}nav{gap:20px}h2{font-size:25px}.section-title{align-items:start}.section-title>button{flex-shrink:0;padding:8px 11px;font-size:12px}.floor{grid-template-columns:1fr}.floor-label{display:flex;align-items:center;gap:14px;padding:14px 18px}.floor-number{font-size:27px}.floor-label h3{margin:0}.floor-label p{margin:0}.floor-spaces{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.task{gap:9px;padding:14px}.field-row{grid-template-columns:1fr}footer{flex-direction:column}.filters label{min-width:0;flex:1}.vendor-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}}
.brand img{display:block;width:150px;height:85px;object-fit:cover;background:white}.brand span{font-size:10px;letter-spacing:1.3px;text-align:center}.intro{padding:28px 0}h1{font-size:40px;margin:0 0 12px}.brand{letter-spacing:normal}@media(max-width:750px){.brand img{width:120px;height:70px}h1{font-size:32px}}
.task-group{margin:30px 0 36px}.group-title{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.group-title h3{font-size:19px}.group-title span{font-size:12px;color:var(--muted)}.group-actions{display:flex;gap:8px;flex-wrap:wrap}.room-back{margin-bottom:24px}.room-description{white-space:pre-wrap;color:var(--muted);max-width:850px}.room-summary{display:flex;flex-wrap:wrap;gap:12px 26px;background:var(--soft);padding:14px 18px;border-radius:8px;margin:24px 0;font-size:13px}.room-section{padding:26px 0;border-top:1px solid var(--line)}.room-section h2{font-size:25px;margin:0}.room-empty{padding:18px 0;grid-column:1/-1}.room-note{display:flex;align-items:start;justify-content:space-between;gap:16px;padding:18px;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.room-note p{white-space:pre-wrap;overflow-wrap:anywhere}.room-note>div{min-width:0}.room-note button{flex-shrink:0}#space-detail h1{font-size:36px}.login-shell{max-width:440px;margin:60px auto;padding:30px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}.login-shell .brand{width:150px;margin:0 auto 25px}.login-shell h1{font-size:30px}.login-shell form{display:grid;gap:18px}.login-shell .primary{width:100%;margin-top:10px}.login-status{color:var(--muted);font-size:13px}.login-error{color:#a4322b}@media(max-width:750px){#space-detail h1{font-size:29px}.login-shell{margin:30px 16px}.group-title{align-items:start}}
.bulk-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0 22px;padding:14px;background:var(--soft);border-radius:8px;font-size:13px}.bulk-bar .danger{margin-right:0}.bulk-select,.bulk-all{display:flex;align-items:center;gap:7px;color:var(--ink);font-size:12px}.bulk-select input,.bulk-all input{width:18px;height:18px;accent-color:var(--accent)}.bulk-select{margin-bottom:12px}.task.bulk-mode{grid-template-columns:85px 28px 1fr auto}.task .bulk-select{margin:0}.bulk-selected{outline:2px solid var(--accent);outline-offset:0}.gallery-card>.bulk-select{padding:10px 14px;margin:0}.room-note.bulk-mode{flex-wrap:wrap}.room-note.bulk-mode>div{flex:1;min-width:160px}@media(max-width:750px){.task.bulk-mode{grid-template-columns:24px 1fr auto}.task.bulk-mode>.bulk-select{grid-column:1/-1}.bulk-bar{gap:10px}.bulk-bar .edit{min-height:40px}.bulk-select,.bulk-all{min-height:35px}}
