:root{
  --red:#a71930;--red2:#c62c45;--red-dark:#7f1022;--red-soft:#f8e5e5;
  --beige:#f3eadb;--beige-2:#ede0cd;--cream:#fffaf2;--paper:#fffdf9;
  --ink:#25211d;--muted:#746b60;--line:#dfd2c0;--white:#fff;
  --shadow:0 12px 35px rgba(86,57,35,.10)
}
*{box-sizing:border-box}
html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--beige);color:var(--ink)}
body{margin:0;min-height:100vh;background:linear-gradient(180deg,var(--beige) 0%,#f8f1e7 100%)}
.topbar{position:sticky;top:0;z-index:50;height:64px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,env(safe-area-inset-left));box-shadow:0 4px 18px rgba(0,0,0,.12)}
.brand{color:#fff;text-decoration:none;font-weight:900;letter-spacing:.06em;font-size:1.05rem}.brand span{font-weight:500}.logout{color:#fff;text-decoration:none;font-size:.9rem;opacity:.9}
.page{width:min(100%,1050px);margin:0 auto;padding:24px 16px 48px}.hero{padding:12px 0 18px}.eyebrow{color:var(--red);font-size:.76rem;font-weight:850;letter-spacing:.14em}.hero h1,.page-head h1{margin:.2rem 0 .35rem;font-size:clamp(1.7rem,6vw,2.6rem);line-height:1.05}.muted,.hint,.optional{color:var(--muted)}
.dashboard-grid{display:grid;grid-template-columns:1fr;gap:14px}.action-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:22px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);display:grid;grid-template-columns:52px 1fr;column-gap:14px;align-items:center}.action-card .icon{grid-row:1/3;width:52px;height:52px;border-radius:16px;background:var(--red-soft);color:var(--red);display:grid;place-items:center;font-size:1.8rem;font-weight:700}.action-card strong{font-size:1.15rem}.action-card small{color:var(--muted);margin-top:3px}
.status-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:0 0 18px}.status-stat{background:rgba(255,253,249,.78);border:1px solid var(--line);border-radius:15px;padding:12px;display:flex;flex-direction:column}.status-stat strong{font-size:1.35rem;color:var(--red)}.status-stat span{font-size:.78rem;color:var(--muted);font-weight:750}
.center-card,.form-card,.search-card,.table-card,.timeline-card,.item-summary-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.center-card{max-width:430px;margin:9vh auto;padding:28px}.login-card{text-align:center}.logo-mark{font-size:3rem}.stack{display:flex;flex-direction:column;gap:10px}.login-card .stack{text-align:left;margin-top:24px}
label{font-weight:750;font-size:.94rem;margin-top:7px}input,select{width:100%;border:1.5px solid #cfc3b4;border-radius:13px;padding:14px 14px;font:inherit;background:#fffefa;color:var(--ink);outline:none;min-height:50px}input:focus,select:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(167,25,48,.10)}
.btn{border:0;border-radius:13px;padding:13px 18px;font:inherit;font-weight:800;text-decoration:none;text-align:center;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.btn.primary{background:var(--red);color:#fff}.btn.primary:active{background:var(--red-dark)}.btn.large{margin-top:14px;min-height:54px}.btn.small{padding:10px 14px;font-size:.9rem}.btn.full{width:100%;margin-top:14px}.btn.danger{background:#fffaf6;color:var(--red);border:1.5px solid var(--red)}.btn.danger:hover,.btn.danger:active{background:var(--red);color:#fff}
.page-head{margin:4px 0 18px}.page-head.split{display:flex;align-items:end;justify-content:space-between;gap:12px}.back{display:inline-block;color:var(--red);text-decoration:none;font-weight:750;margin-bottom:8px}.form-card{padding:18px}.form-card h2{margin:4px 0 6px}.code-box{background:var(--red);color:#fff;border-radius:18px;padding:18px;margin-bottom:5px;display:flex;flex-direction:column}.code-box span{font-size:.74rem;letter-spacing:.12em;font-weight:800;opacity:.8}.code-box strong{font-size:2.35rem;line-height:1.1}.code-box small{opacity:.75}.current-stage-banner{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;background:#f4e9dc;border:1px solid var(--line);border-radius:13px}.current-stage-banner span{color:var(--muted);font-size:.83rem}.current-stage-banner strong{color:var(--red)}
.hint{margin:0 0 5px;font-size:.83rem;line-height:1.35}.autocomplete{position:relative}.suggestions{display:none;position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;background:#fffefa;border:1px solid var(--line);border-radius:13px;box-shadow:0 12px 28px rgba(0,0,0,.13);max-height:230px;overflow:auto}.suggestions.show{display:block}.suggestion{padding:12px 14px;border-bottom:1px solid #eee5d9;cursor:pointer}.suggestion:last-child{border-bottom:0}.suggestion:hover,.suggestion:active{background:var(--red-soft)}
.image-picker{border:1.5px dashed #c8a89d;background:#fdf5ec;border-radius:16px;padding:15px;display:flex;gap:13px;align-items:center;cursor:pointer}.image-picker input{display:none}.camera{font-size:1.8rem}.image-picker span:last-of-type{display:flex;flex-direction:column}.image-picker small{color:var(--muted);font-weight:500;margin-top:2px}.image-preview{margin-top:8px}.image-preview img{display:block;width:100%;max-height:320px;object-fit:cover;border-radius:16px}.hidden{display:none}
.flash-wrap{display:grid;gap:8px;margin-bottom:14px}.flash{border-radius:12px;padding:12px 14px;font-weight:650}.flash.success{background:#edf5e9;color:#2b6838}.flash.error{background:#fbe4e5;color:#8e1728}.search-card{padding:18px}.search-row{display:grid;grid-template-columns:1fr auto;gap:9px}.result-count{font-weight:750;margin:20px 2px 10px}.result-list{display:grid;gap:12px}.result-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:0 8px 25px rgba(86,57,35,.08)}.result-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.pill{background:var(--red);color:#fff;border-radius:999px;padding:6px 10px;font-weight:850}.date{color:var(--muted);font-size:.78rem}.result-image{width:100%;height:220px;object-fit:cover;border-radius:14px;margin-bottom:12px}.result-card dl{margin:0;display:grid;gap:8px}.result-card dl div{display:grid;grid-template-columns:110px 1fr;gap:8px}.result-card dt{color:var(--muted);font-size:.85rem}.result-card dd{margin:0;font-weight:650}.empty{background:rgba(255,253,249,.75);border:1px dashed #cdbfae;border-radius:16px;padding:28px;text-align:center;color:var(--muted);margin-top:16px}
.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:.76rem;font-weight:850;white-space:nowrap;background:#eee;color:#444}.status-old_house{background:#f2dedc;color:#7f1022}.status-temp_house_in{background:#f4ead0;color:#725719}.status-temp_house_out{background:#e1ead8;color:#3f622e}.status-new_house{background:#dfe9ed;color:#315c6e}
.item-summary-card{padding:18px;margin-bottom:14px}.item-summary-card h2{margin:5px 0}.item-summary-card p{margin:0}.timeline-card{padding:18px;margin-bottom:14px}.timeline-card h2{margin:2px 0 16px}.move-timeline{display:grid}.timeline-step{display:grid;grid-template-columns:24px 1fr;gap:10px;position:relative;padding-bottom:19px}.timeline-step:not(:last-child)::before{content:"";position:absolute;left:8px;top:17px;bottom:-2px;width:2px;background:#d7cabb}.timeline-dot{width:18px;height:18px;border-radius:50%;border:3px solid #c9baaa;background:var(--paper);z-index:1}.timeline-step.visited .timeline-dot{border-color:var(--red);background:var(--red-soft)}.timeline-step.current .timeline-dot{background:var(--red);box-shadow:0 0 0 4px rgba(167,25,48,.12)}.timeline-body{min-width:0}.timeline-heading{display:flex;justify-content:space-between;gap:10px;align-items:center}.timeline-heading span{font-size:.7rem;background:var(--red);color:white;border-radius:999px;padding:4px 7px}.timeline-body small{display:block;color:var(--muted);margin-top:2px}.timeline-photo{display:block;margin-top:8px}.timeline-photo img{width:100%;max-width:280px;height:150px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.table-card{overflow:hidden}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;min-width:960px}th,td{padding:13px 14px;border-bottom:1px solid #e8ddd0;text-align:left;font-size:.9rem;vertical-align:top}th{background:#f5e9dc;color:var(--red-dark);position:sticky;top:0}td a:not(.btn){color:var(--red);font-weight:700}.empty-cell{text-align:center;color:var(--muted);padding:25px}td form{margin:0}.table-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
@media(min-width:720px){.page{padding:36px 24px 60px}.dashboard-grid{grid-template-columns:repeat(3,1fr)}.action-card{grid-template-columns:1fr;text-align:center;justify-items:center;padding:28px 20px}.action-card .icon{grid-row:auto;margin-bottom:9px}.form-card,.search-card,.timeline-card,.item-summary-card{padding:26px}.result-list{grid-template-columns:repeat(2,1fr)}.status-summary{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.page-head.split{align-items:flex-start;flex-direction:column}.page-head.split>.btn{width:100%}.search-row{grid-template-columns:1fr}.search-row .btn{width:100%}}
