*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px}
body{font-family:'Hiragino Kaku Gothic ProN','Noto Sans JP','Meiryo',sans-serif;background:#f0f2f5;color:#333;line-height:1.7;min-height:100vh}
a{color:#3498db;text-decoration:none}a:hover{text-decoration:underline}
.main-nav{background:#2c3e50;color:#fff;padding:0 20px;position:sticky;top:0;z-index:1000;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.nav-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;height:56px;gap:24px}
.nav-brand a{color:#fff;font-size:16px;font-weight:700;text-decoration:none;white-space:nowrap}
.nav-menu{list-style:none;display:flex;gap:4px;flex-wrap:wrap}
.nav-menu li a{color:#cbd5e1;padding:8px 12px;border-radius:6px;font-size:13px;font-weight:500;transition:background .2s,color .2s;text-decoration:none;display:block;white-space:nowrap}
.nav-menu li a:hover{background:rgba(255,255,255,.1);color:#fff;text-decoration:none}
.nav-right{margin-left:auto}
.nav-logout{color:#e74c3c;font-size:13px;font-weight:500;padding:6px 14px;border:1px solid #e74c3c;border-radius:6px;text-decoration:none;transition:background .2s}
.nav-logout:hover{background:#e74c3c;color:#fff;text-decoration:none}
.main-wrapper{padding:24px 16px}.container{max-width:1200px;margin:0 auto}
.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.page-header h1{font-size:22px;font-weight:700;color:#2c3e50}
.card{background:#fff;border-radius:8px;box-shadow:0 1px 6px rgba(0,0,0,.08);padding:24px;margin-bottom:24px}
.card-header{font-size:16px;font-weight:700;color:#2c3e50;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #f0f2f5}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:#fff;border-radius:8px;box-shadow:0 1px 6px rgba(0,0,0,.08);padding:20px;text-align:center}
.stat-card .stat-value{font-size:28px;font-weight:700;color:#2c3e50}
.stat-card .stat-label{font-size:13px;color:#7f8c8d;margin-top:4px}
.stat-card.accent-blue{border-top:3px solid #3498db}.stat-card.accent-green{border-top:3px solid #27ae60}
.stat-card.accent-orange{border-top:3px solid #e67e22}.stat-card.accent-red{border-top:3px solid #e74c3c}
.stat-card.accent-purple{border-top:3px solid #9b59b6}
.table-wrapper{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
table th,table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e8e8e8}
table th{background:#f8f9fa;font-weight:600;color:#555;white-space:nowrap}
table tbody tr:hover{background:#f7f9fc}
table .text-right{text-align:right}table .text-center{text-align:center}
.form-group{margin-bottom:20px}
.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#444}
.form-group input[type="text"],.form-group input[type="email"],.form-group input[type="password"],.form-group input[type="number"],.form-group input[type="date"],.form-group input[type="tel"],.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s;background:#fff}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px rgba(52,152,219,.1)}
.form-group textarea{resize:vertical;min-height:80px}.form-group small{display:block;margin-top:4px;color:#888;font-size:12px}
.form-inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.form-inline .form-group{margin-bottom:0}
.btn{display:inline-block;padding:10px 24px;border:none;border-radius:6px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;transition:background .2s;line-height:1.5;white-space:nowrap}
.btn:hover{text-decoration:none}
.btn-primary{background:#3498db;color:#fff}.btn-primary:hover{background:#2980b9}
.btn-success{background:#27ae60;color:#fff}.btn-success:hover{background:#219a52}
.btn-warning{background:#e67e22;color:#fff}.btn-warning:hover{background:#d35400}
.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}
.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}
.btn-sm{padding:6px 14px;font-size:12px}
.btn-outline{background:transparent;border:1px solid #3498db;color:#3498db}.btn-outline:hover{background:#3498db;color:#fff}
.btn-group{display:flex;gap:8px;flex-wrap:wrap}
.alert{padding:12px 16px;border-radius:6px;margin-bottom:20px;font-size:14px}
.alert-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}
.alert-error{background:#fdecea;color:#c0392b;border:1px solid #f5c6cb}
.alert-warning{background:#fff3cd;color:#856404;border:1px solid #ffc107}
.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap}
.status-estimate{background:#e8f4fd;color:#2980b9}.status-ordered{background:#fef3e2;color:#e67e22}
.status-delivered{background:#e8f8f5;color:#1abc9c}.status-invoiced{background:#f4ecf7;color:#8e44ad}
.status-paid{background:#eafaf1;color:#27ae60}.status-completed{background:#eafaf1;color:#27ae60}
.status-lost{background:#fdedec;color:#e74c3c}.status-unpaid{background:#fdecea;color:#e74c3c}

/* 明細入力テーブル - 詳細列なし、備考は品目セル内 */
.items-table{width:100%;border-collapse:collapse;margin-bottom:16px}
.items-table th{background:#f8f9fa;padding:8px 10px;font-size:12px;font-weight:600;color:#555;border-bottom:2px solid #dee2e6;text-align:left}
.items-table td{padding:6px;border-bottom:1px solid #eee;vertical-align:top}
.items-table input[type="text"],.items-table input[type="number"]{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;font-family:inherit}
.items-table input:focus{outline:none;border-color:#3498db}
.items-table .col-action{width:40px;text-align:center;vertical-align:middle}
.items-table .col-qty{width:80px}.items-table .col-unit{width:70px}
.items-table .col-price{width:120px}.items-table .col-amount{width:120px;text-align:right;vertical-align:middle}
.items-table .item-desc-input{margin-top:4px}
.items-table .item-desc-input input{font-size:11px;color:#888;border:1px dashed #ddd}
.btn-remove-row{background:#e74c3c;color:#fff;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.btn-remove-row:hover{background:#c0392b}
.totals-section{display:flex;justify-content:flex-end;margin-top:16px}
.totals-table{border-collapse:collapse}
.totals-table th{text-align:right;padding:8px 16px;font-size:14px;font-weight:600;color:#555}
.totals-table td{text-align:right;padding:8px 16px;font-size:14px;min-width:120px}
.totals-table .total-row th,.totals-table .total-row td{font-size:18px;font-weight:700;color:#2c3e50;border-top:2px solid #2c3e50;padding-top:12px}

/* 書類表示 */
.document-wrapper{background:#fff;max-width:210mm;margin:0 auto;padding:40px;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}
.document-header{display:flex;justify-content:space-between;margin-bottom:32px;align-items:flex-start}
.document-title{font-size:24px;font-weight:700;color:#2c3e50;border-bottom:3px solid #2c3e50;padding-bottom:8px}
.document-meta{text-align:right;font-size:13px;color:#555}.document-meta p{margin-bottom:4px}
.document-parties{display:flex;justify-content:space-between;margin-bottom:32px;gap:40px}
.document-to{flex:1}.document-from{flex:1;text-align:right;font-size:13px}
.document-to .client-name{font-size:18px;font-weight:700;border-bottom:1px solid #333;padding-bottom:4px;margin-bottom:8px}
.document-from .from-company{font-size:15px;font-weight:700;margin-bottom:4px}
.document-from p{margin-bottom:2px;color:#555}
.document-total-box{background:#f8f9fa;border:2px solid #2c3e50;border-radius:6px;padding:16px 24px;margin-bottom:32px;display:flex;justify-content:space-between;align-items:center}
.document-total-box .label{font-size:16px;font-weight:700;color:#2c3e50}
.document-total-box .amount{font-size:24px;font-weight:700;color:#2c3e50}
.document-items-table{width:100%;border-collapse:collapse;margin-bottom:24px}
.document-items-table th{background:#2c3e50;color:#fff;padding:10px 12px;font-size:12px;font-weight:600;text-align:left}
.document-items-table td{padding:10px 12px;border-bottom:1px solid #e8e8e8;font-size:13px}
.document-items-table tbody tr:nth-child(even){background:#f8f9fa}

/* 備考欄 - 常に枠表示 */
.document-notes-box{margin-top:24px;border:1px solid #ccc;border-radius:6px;padding:16px;min-height:80px}
.document-notes-box h4{margin-bottom:8px;font-size:14px;color:#555}
.document-notes-box .document-notes-content{font-size:13px;color:#333;min-height:40px}

.document-bank{margin-top:24px;padding:16px;border:1px solid #ddd;border-radius:6px;font-size:13px}
.document-bank h4{margin-bottom:8px;font-size:14px}
.document-actions{margin-bottom:24px;display:flex;gap:8px}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:24px}
.detail-item{display:flex;padding:8px 0;border-bottom:1px solid #f0f2f5}
.detail-item .detail-label{width:120px;font-weight:600;color:#666;font-size:13px;flex-shrink:0}
.detail-item .detail-value{font-size:14px}
.login-container{max-width:400px;margin:60px auto;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.1);overflow:hidden}
.login-header{background:#2c3e50;color:#fff;padding:24px;text-align:center}.login-header h1{font-size:18px}.login-body{padding:32px}
.filter-bar{background:#fff;padding:16px 20px;border-radius:8px;box-shadow:0 1px 6px rgba(0,0,0,.08);margin-bottom:24px;display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.filter-bar .form-group{margin-bottom:0}.filter-bar .form-group label{font-size:12px;margin-bottom:4px}
.filter-bar .form-group select,.filter-bar .form-group input{padding:8px 12px;font-size:13px}
.text-right{text-align:right}.text-center{text-align:center}.text-muted{color:#7f8c8d}
.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}
.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}
.whitespace-pre{white-space:pre-wrap}
@media(max-width:768px){
.nav-inner{flex-wrap:wrap;height:auto;padding:12px 0}.nav-menu{gap:2px}.nav-menu li a{padding:6px 8px;font-size:12px}
.page-header{flex-direction:column;align-items:flex-start}
.document-parties{flex-direction:column;gap:20px}.document-from{text-align:left}
.document-header{flex-direction:column;gap:16px}.document-meta{text-align:left}
}
