*{box-sizing:border-box}
:root{--bg:#f6f3ef;--surface:#fff;--soft:#fbfaf8;--line:#e7e1da;--text:#302a26;--muted:#8b8178;--brown:#7b4d2d;--brown-dark:#643d24;--brown-light:#f1e8df;--green:#5e9360;--green-soft:#e7f2e6;--red:#a76159;--shadow:0 4px 18px rgba(70,50,35,.07)}
html{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;background:var(--bg);color:var(--text)}
body{margin:0;background:var(--bg);line-height:1.7}button,input,textarea,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}
.contact-shell{min-height:100vh}.site-header{height:70px;display:flex;align-items:center;padding:0 20px;background:#fff;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:11px;width:min(100%,720px);margin:auto}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:var(--brown);color:#fff;font-size:21px;font-weight:700}.brand-mark.center{margin:auto}
.brand-name{font-size:20px;font-weight:700}.brand-sub{font-size:11px;color:var(--muted)}.contact-main{width:min(calc(100% - 24px),720px);margin:28px auto 50px}
.card{padding:26px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.section-heading{padding-bottom:18px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.section-heading h1{margin:0;font-size:24px}.section-heading p{margin:4px 0 0;color:var(--muted);font-size:13px}
.notice{margin-bottom:22px;padding:13px 15px;border-radius:10px;background:var(--brown-light);color:#70472d;font-size:12px}
.form-group{margin-bottom:18px}.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:700}
.form-group input,.form-group textarea,.form-group select,.login-card input,.category-add input,.status-form select{width:100%;padding:11px 12px;border:1px solid #d9d0c7;border-radius:9px;outline:none;background:#fff;color:var(--text)}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--brown);box-shadow:0 0 0 3px rgba(123,77,45,.08)}
.required{margin-left:5px;color:#a45f57;font-size:10px}.optional{margin-left:5px;color:#999;font-size:10px}.save-info{display:flex;align-items:center;gap:8px;margin:4px 0 20px;color:var(--muted);font-size:12px}.save-info input{accent-color:var(--brown)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:0;border-radius:9px;font-weight:700}.btn-main{background:var(--brown);color:#fff}.btn-main:hover{background:var(--brown-dark)}.btn-light{background:#f3eee9;color:#655c54}.btn-full{width:100%}
.button-row{display:grid;grid-template-columns:1fr 2fr;gap:9px;margin-top:22px}.error-box{margin-bottom:18px;padding:12px 14px;border-radius:9px;background:#fbefed;color:var(--red);font-size:12px}
.confirm-list{display:grid;border:1px solid var(--line);border-radius:11px;overflow:hidden}.confirm-list>div{display:grid;grid-template-columns:160px 1fr;gap:14px;padding:13px 15px;border-bottom:1px solid var(--line)}.confirm-list>div:last-child{border-bottom:0}.confirm-list span{color:var(--muted);font-size:12px}.confirm-message{display:block!important}.confirm-message p{margin:7px 0 0}
.complete-card{text-align:center;padding:45px 26px}.complete-icon{width:58px;height:58px;margin:auto;display:grid;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:28px}.complete-card h1{font-size:23px}.complete-card p{color:var(--muted);font-size:13px}
.receipt-no{margin:22px auto;padding:13px;border-radius:10px;background:var(--soft);width:min(100%,360px)}.receipt-no span{display:block;color:var(--muted);font-size:10px}.receipt-no strong{font-size:18px}.footer{text-align:center;padding:24px;color:#aaa;font-size:11px}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(100%,360px);padding:28px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow);text-align:center}.login-card h1{font-size:20px}.login-card .btn{margin-top:10px}
.admin-header{min-height:68px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.admin-title{font-size:19px;font-weight:700;color:var(--brown)}.admin-sub{font-size:10px;color:var(--muted)}
.admin-header nav{display:flex;gap:8px}.admin-header nav a{padding:7px 9px;border-radius:8px;font-size:11px}.admin-header nav a:hover{background:#f5f1ed}.admin-main{width:min(calc(100% - 30px),1000px);margin:25px auto 50px}
.admin-page-title h1,.admin-card h1{margin:0;font-size:23px}.admin-page-title p,.admin-card-head p{margin:2px 0;color:var(--muted);font-size:11px}.admin-card{padding:22px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}
.admin-card-head{display:flex;justify-content:space-between;gap:15px;padding-bottom:16px;border-bottom:1px solid var(--line)}.back-link{font-size:11px;color:var(--brown)}
.filter-row{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.filter-row a{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:11px}
.contact-list{display:grid;gap:8px}.contact-row{display:flex;justify-content:space-between;gap:16px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fff}.contact-row:hover{box-shadow:var(--shadow)}
.contact-row-main{min-width:0;flex:1}.contact-row-top{display:flex;align-items:center;gap:8px}.contact-category{margin-top:2px;color:var(--brown);font-size:11px}.contact-row p{margin:6px 0 0;color:#756c64;font-size:12px}.contact-row time{color:#999;font-size:10px;white-space:nowrap}
.status{display:inline-flex;padding:3px 7px;border-radius:7px;font-size:10px;font-weight:700}.status-new{background:#f8e8e5;color:#a45f57}.status-working{background:#f4ebd8;color:#94702d}.status-done{background:var(--green-soft);color:var(--green)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:18px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}.detail-grid>div{padding:12px;background:#fff}.detail-grid span{display:block;color:var(--muted);font-size:10px}.detail-grid strong{font-size:13px}
.message-box{margin-top:15px;padding:17px;border-radius:10px;background:var(--soft);font-size:13px}.status-form{display:flex;gap:8px;margin-top:17px}.status-form select{max-width:180px}
.category-add{display:grid;grid-template-columns:1fr 100px auto;gap:8px;margin:18px 0}.category-list{display:grid;gap:8px}.category-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px;border:1px solid var(--line);border-radius:10px}.category-row small{display:block;color:var(--muted);font-size:10px}
.empty-state{padding:45px;text-align:center;border:1px dashed #d9d0c7;border-radius:11px;background:#fff;color:var(--muted)}
@media(max-width:600px){.card{padding:20px 16px}.contact-main{margin-top:18px}.confirm-list>div{grid-template-columns:1fr;gap:3px}.admin-header{height:auto;padding:12px 14px}.admin-header nav{flex-wrap:wrap;justify-content:flex-end}.contact-row{flex-direction:column;gap:7px}.detail-grid{grid-template-columns:1fr}.category-add{grid-template-columns:1fr}.status-form{flex-direction:column}.status-form select{max-width:none}}
