:root{font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;color:#1e293b;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}a{text-decoration:none;color:inherit}header{background:#fff;border-bottom:1px solid #dfe5ec}.top{max-width:1360px;margin:auto;padding:15px 24px;display:flex;justify-content:space-between;align-items:center}.brand{font-size:20px;font-weight:800;color:#194a7d}.brand small{font-size:11px;background:#e8f0f9;border-radius:8px;padding:4px 7px;color:#4875a2;margin-left:6px}nav{display:flex;gap:18px;align-items:center}nav a{font-weight:600}.navbtn,.primary{background:#2465ad;color:white!important;padding:11px 18px;border:0;border-radius:9px;font-weight:700;cursor:pointer}main{max-width:1360px;padding:30px 24px;margin:auto;min-height:83vh}.heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.heading h1{font-size:27px;margin:0 0 8px}.heading p{color:#728096;margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.stats div{background:white;border:1px solid #e4e9f1;border-radius:12px;padding:20px 24px;display:flex;align-items:center;justify-content:space-between}.stats b{font-size:29px;color:#2465ad}.stats span{font-size:14px;color:#62758b}.filters{background:white;border:1px solid #e3e9f0;border-radius:12px;padding:17px;display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filters label{flex:1;min-width:120px;font-size:12px;font-weight:700;color:#56677c}.filters label:first-child{flex:3;min-width:250px}input,select,textarea{font:inherit;border:1px solid #ccd6e2;border-radius:8px;padding:11px 12px;width:100%;background:white;color:#243041;outline-color:#2465ad}label input,label select{margin-top:6px}.filters button{background:#2465ad;color:white;border:0;border-radius:8px;padding:12px 19px;font-weight:700;cursor:pointer}.clear{padding:11px;color:#53718e}.action{margin:23px 0 12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.action>div,.buttonrow,.formactions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.outline{display:inline-block;background:#fff;border:1px solid #c8d7e8;border-radius:9px;padding:10px 14px;color:#275b95;cursor:pointer;font-weight:600;font-size:14px}.inline{display:inline}.tablewrap{overflow:auto;border:1px solid #dae2ec;border-radius:12px;background:#fff}table{border-collapse:collapse;width:100%;min-width:1000px;font-size:13px;text-align:left}th{background:#edf3fb;color:#466382;padding:16px 12px;border-bottom:1px solid #d8e4f0;white-space:nowrap}td{padding:15px 12px;border-bottom:1px solid #edf0f5;max-width:280px;vertical-align:top}tbody tr{cursor:pointer}tbody tr:hover{background:#f0f7ff}.muted{color:#64748b;white-space:nowrap}.pill{display:inline-block;padding:5px 9px;font-size:12px;font-weight:700;border-radius:20px;white-space:nowrap}.done{background:#ddf8e8;color:#167348}.new{background:#fff2d8;color:#966200}.progress{background:#dceeff;color:#2861a9}.hold{background:#f4e2e2;color:#9f4646}.empty{text-align:center;padding:40px;color:#6f7e8d}.help{margin:22px 0;color:#718096;font-size:13px}.editform,.detailcard{background:white;border:1px solid #e0e7f0;padding:25px;border-radius:13px}.formgrid,.detailgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.formgrid label{font-weight:700;font-size:14px;color:#3e536d}.formgrid textarea{display:block;margin-top:6px;resize:vertical}.wide{grid-column:1/-1}.photoform,.photos{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.photoform section,.photos section{background:#fff;border:1px solid #e0e7f0;border-radius:12px;padding:19px;min-width:0}.photoform h3,.photos h3{margin:0 0 16px}.thumbs,.gallery{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.thumbs img,.gallery img{width:150px;height:125px;object-fit:cover;border-radius:7px;border:1px solid #e1e6ef}.existing{position:relative}.existing button{display:block;margin-top:5px;font-size:12px;border:0;background:#fce3e3;color:#994040;border-radius:6px;padding:5px 10px;cursor:pointer}.formactions{margin-top:22px}.detailcard h2{margin-top:0}.detailgrid{margin-top:18px}.detailgrid small{color:#76879b}.detailgrid p{margin:7px 0 0;font-weight:600}.pre{white-space:pre-wrap}.placeholder{height:130px;display:grid;place-items:center;color:#96a3b3;background:#f6f8fb;border:1px dashed #ccd5df;border-radius:10px;width:100%}.history{margin:25px 0;background:#fff;padding:18px;border-radius:10px}.history summary{cursor:pointer;font-weight:bold}.history p{font-size:13px;color:#586679}.notice{padding:13px 18px;border-radius:9px;margin-bottom:15px;background:#e3f8ed;color:#176443}.notice.error{background:#fff0e6;color:#aa4b20}footer{text-align:center;padding:25px;color:#94a2b3;font-size:12px}@media(max-width:800px){.heading,.action{align-items:flex-start;flex-direction:column}.stats div{padding:14px;flex-direction:column;gap:7px}.stats b{font-size:23px}.stats span{font-size:11px}.photoform,.photos,.formgrid,.detailgrid{grid-template-columns:1fr}.wide{grid-column:auto}main{padding:20px 12px}.top{padding:12px}.brand{font-size:16px}}
@media print{header,footer,.buttonrow,.outline,.primary,.history{display:none!important}main{max-width:none;padding:0}body{background:white}.detailcard,.photos section{border:1px solid #bbb}.gallery img{width:210px;height:auto;max-height:280px;object-fit:contain}}

/* Hillstate-inspired color palette, original wordmark shown as text */
.hill-brand{font-family:Arial,sans-serif;letter-spacing:2.5px;font-size:21px;color:#760c21;font-weight:900}.estate-label{color:#3c2d35;font-size:16px;letter-spacing:-0.5px}.brand small{background:#f9eced;color:#760c21}.navbtn,.primary,.filters button{background:#760c21}.stats b{color:#760c21}th{background:#f9f0f2;color:#782838}input,select,textarea{outline-color:#760c21}tbody tr:hover{background:#fff4f6}.outline{color:#760c21;border-color:#e6ccd2}@media(max-width:800px){.hill-brand{font-size:16px}.estate-label{font-size:12px}}

/* v0.5 status shortcuts and photo drag-drop */
.rowlink{display:block;color:inherit}.rowlink:hover{text-decoration:underline;color:#760c21}
.quick-status select{width:105px;padding:6px 7px;font-size:12px;font-weight:700;cursor:pointer}
.quick-status input[type=hidden]{display:none}.detail-status{background:#fff;padding:12px 20px;margin-bottom:14px;border:1px solid #e0e7f0;border-radius:10px}.detail-status label{font-weight:bold;display:flex;align-items:center;gap:14px}.detail-status select{max-width:180px}
.drop-zone{transition:background-color .15s,border-color .15s}.drop-zone.drag-over{background:#fff3f5;border:2px dashed #760c21}
.photo-tile{display:flex;flex-direction:column;gap:6px;cursor:grab}.photo-tile:active{cursor:grabbing}.photo-tile .photo-move{border:1px solid #dfc2c8;border-radius:6px;background:#fff;padding:6px 8px;color:#760c21;font-size:11px;cursor:pointer;width:150px}.photo-tile .photo-move:hover{background:#f9eef0}
@media print{.detail-status,.photo-move{display:none!important}}

/* v0.6: 큰 글씨와 클릭 가능한 행 */
html{font-size:120%}
body{font-size:1rem;line-height:1.55}
.brand{font-size:24px}.brand small{font-size:14px}
.hill-brand{font-size:25px}.estate-label{font-size:19px}
.heading h1{font-size:32px}.stats b{font-size:35px}.stats span{font-size:17px}
.filters label{font-size:15px} .formgrid label{font-size:17px}
table{font-size:15.6px;min-width:1200px} th{font-size:15.6px}
.outline{font-size:17px}.pill{font-size:15px}.help,.history p{font-size:16px}
footer{font-size:15px} .photo-tile .photo-move{font-size:14px}
.detailgrid small{font-size:16px}
.clickable-row{cursor:pointer} .clickable-row:focus-visible{outline:3px solid #760c21;outline-offset:-3px}
.archive-cell{white-space:pre-wrap;max-width:180px;display:block}
@media(max-width:800px){.hill-brand{font-size:19px}.estate-label{font-size:15px}.brand{font-size:20px}}

/* v0.7.1: keep before/after image counts on a single line in the list */
.tablewrap table th:last-child, .tablewrap table td:last-child{white-space:nowrap;min-width:145px;width:145px;}
.tablewrap table{min-width:1320px;}

/* v0.8: completed=white; every non-completed item has a pale rose row */
.tablewrap tbody tr.row-complete{background:#fff}
.tablewrap tbody tr.row-pending{background:#fff0e8}
.tablewrap tbody tr.row-complete:hover{background:#f5f7fa}
.tablewrap tbody tr.row-pending:hover{background:#ffdfd1}
.tablewrap tbody tr.row-pending td:first-child{border-left:5px solid #c47042}
@media print{.tablewrap tbody tr{background:#fff!important}}
.print-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin:24px 0}
.print-photo-choice{display:flex;flex-direction:column;gap:10px;border:2px solid #d8dee8;border-radius:12px;padding:12px;cursor:pointer;background:#fff;font-weight:700}
.print-photo-choice:has(input:checked){border-color:#760c21;background:#fff4f6}
.print-photo-choice input{width:22px;height:22px;accent-color:#760c21}
.print-photo-choice img{width:100%;height:180px;object-fit:contain;background:#eef0f2;border-radius:8px}
.print-actions{display:flex;gap:20px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
/* In the one-photo layout, occupy the full photograph area. */
.photoarea.one .photo-panel{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center}

/* v0.9: authenticated access and 500ms hover thumbnail */
.logout-form{margin:0}.logout-form button{font-size:14px;padding:7px 12px}
.login-body{background:#f6f1f2;display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-box{margin:30px auto;background:#fff;border-radius:18px;padding:40px;max-width:440px;width:calc(100% - 28px);box-shadow:0 10px 40px #5f27301c}
.login-box h1{margin:6px 0 15px}.login-box form{display:grid;gap:12px;margin-top:20px}
.login-box .primary{width:100%;font-size:18px}.login-note{color:#758094;font-size:13px;margin-top:20px}
.hover-preview{display:none;position:fixed;z-index:5000;pointer-events:none;width:300px;background:#fff;border:1px solid #dcc9cc;border-radius:12px;padding:10px;box-shadow:0 9px 30px #24101938}
.hover-preview.visible{display:block}.hover-preview img{display:block;width:100%;height:205px;object-fit:contain;background:#f0f2f4;border-radius:7px}
.hover-preview p{font-size:14px;color:#522434;margin:9px 4px 2px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(hover:none){.hover-preview{display:none!important}}

/* v0.9.1: remember this PC option */
.login-box .remember-line{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border:1px solid #e8d8dc;background:#fcf7f8;border-radius:10px;cursor:pointer;font-size:15px}
.login-box .remember-line input{width:20px;height:20px;flex:none;margin:3px 0 0;accent-color:#760c21}
.login-box .remember-line span{display:grid;gap:3px}
.login-box .remember-line small{color:#775d64;font-size:13px;font-weight:400;line-height:1.5}
